2010-12-16 2 views
1

저는 Scintilla를 사용하여 Scintilla.NET이라는 .NET 래퍼를 사용하고 있습니다. 인스턴스를 만들 때, 즉 :Scintilla.NET 느린 로딩

Dim c As New ScintillaNet.Scintilla 
    Me.Controls.Add(c) 

처음으로로드하는 데 거의 완료 시간이 걸립니다. 다른 시간은 약 150ms입니다. 실제로, 이것은 내 상황에서 예를 들어로드 중으로 받아 들일 수 없습니다. 한 번에 10 개의 파일이 거의 2 초 걸립니다.

Scintilla (또는 Scintilla.NET)가 느리거나 내가 잘못하고있는 것이 사실입니까?

+0

나는 Scintilla에 익숙하지 않지만 어쨌든 한 번에 10 개의 파일을 열지 않을 가능성이 있습니다 (어딘지에 관련된 탭 인터페이스가 있다고 생각합니까?) , 필요할 때마다 (즉, 활성 탭이 해당 문서를 나타내는 탭으로 변경 될 때)로드합니다. 그게 내가 최근에 내 앱 중 하나에서 한 일이며, 데이터를 '느슨하게'로드하는 매우 유창한 인터페이스에 도달했습니다. 물론 '로드 중'표시기를 제공하면 실제 ms가 동일하거나 더 큰 경우에도 감지 된 시간이 줄어 듭니다. –

+0

실제로 탭 편집기입니다. 게으른 로딩이라고 부르는 것에별로 관심이 없지만 한 번에 2 초가 아닌 오랜 기간 동안 로딩 시간을 분산 시키면 흥미로운 솔루션 일 수 있습니다. – pimvdb

답변

1

나는 신틸라가 느리다는 말을하지 않을 것이다. 처음으로 컨트롤을 만들 때만 속도가 느려지면 Scintilla.dll이로드되고 시스템에서 dll을로드하는 데 필요한 시간이 1 초가 될 수 있습니다.

이 경우, 응용 프로그램이 시작될 때 (예 : 시작 화면에서) dll을로드하는 것이 좋습니다 (더미 컨트롤 생성).

+0

사실, 저는 이미 이것을하고 있습니다. 이렇게하면 첫 번째 로딩이 해결되지만 다른 모든 인스턴스로 인해 ~ 150ms의 정지 시간이 발생합니다. 따라서 한 번에 여러 컨트롤을 만들면 오랜 시간 동안 내 애플리케이션에 매달려 있습니다. – pimvdb

+0

이 경우 150ms가 컨트롤을 인스턴스화하는 데 필요한 시간 일 수 있으므로이 경우에는 최적화 할 필요가 없습니다. –