2014-09-01 3 views
15

Wp8.1 (XAML) 응용 프로그램이 Windows Phone 8.1 용 응용 프로그램을 만드는 새로운 방법이며 코드는 Windows 8.1 데스크톱 응용 프로그램에서 매우 재사용 가능하다는 점을 읽었습니다. .WP SilverLight 8.1 vs WP 8.1 (XAML) 장단점

하지만 연락처 (WP8.1 XAML의 ContactManager)에서 단일 검색을 수행하는 것이 Silverlight 카운터보다 느리기 때문에 조금 걱정됩니다.

Lumia 1520에서 내 일정 (이메일, 미리보기 이미지 등 240 개의 연락처)에서 모든 연락처를 반환하는 데 3 초가 걸립니다. Silverlight 코드를 사용한 동일한 작업에는 0.7 초가 걸립니다.

저는 WP8.1을 사용하여 휴대 전화 용 애플리케이션을 만드는 데 다소 두려워합니다. 성능이 나에게 매우 중요합니다. Lumia 535에 대한 동일한 테스트에는 Lumia 1520의 연락처와 각각 7 초와 1.5 초가 걸립니다.

어떤 프로젝트를 추천합니까? 실버 라이트 앱이 (분명히) Windows Phone에 중점을두고 모든 휴대 전화의 기능을 사용한다고 생각합니다.

내가 잘못 되었나요? 나는 창 전화 실버 라이트를 선택하여 비추천 도로로 향하고 있습니까?

참고 : 검색을 수행하는 데 사용되는 코드 등 작은 이미지, 메일 계정, 240 연락처를 얻을 수있는 MSDN의 예에서 하나 ...

WP8.1 XAML (노키아 루미아 1520 3 초 ...)

ContactStore agenda = await ContactManager.RequestStoreAsync(); 
Stopwatch sw = new Stopwatch(); 
IReadOnlyList<Windows.ApplicationModel.Contacts.Contact> contacts = null; 
sw.Start(); 
contacts = await agenda.FindContactsAsync(); 
sw.Stop(); 
txtblock1.Text = sw.ElapsedMilliseconds; 

WP 실버 라이트 8.1 (노키아 루미아 1520, 0.7 초 등 미리보기, 메일 계정, 240 명 연락처 ...)

Contacts agenda = new Contacts(); 
//Stopwatch is declared at class level so its accessible in ListContacts_SearchCompleted Callback 
sw.Start(); 
agenda.SearchCompleted+= ListContacts_SearchCompleted; 
agenda.SearchAsync(String.Empty, FilterKind.None, null); 
//sw.Stop() and print ElapsedMilliseconds in ListContacts_SearchCompleted callback 
01를 얻을 수 있습니다

EDIT : 포럼에서 생성 된 https://social.msdn.microsoft.com/forums/windowsdesktop/en-us/1e0accaf-b2f8-4d68-b5ec-dc6af6351633/findcontactsasync-takes-long-time?referrer=http://social.msdn.microsoft.com/forums/windowsdesktop/en-us/1e0accaf-b2f8-4d68-b5ec-dc6af6351633/findcontactsasync-takes-long-time?referrer=http://social.msdn.microsoft.com/forums/windowsdesktop/en-us/1e0accaf-b2f8-4d68-b5ec-dc6af6351633/findcontactsasync-takes-long-time?forum=wpdevelop

+0

1520에서 개발자 미리보기 또는 실제 출시 버전/Cyan을 실행하고 있습니까? –

+0

출시 버전. 문제는 내가 시도한 모든 장치에서 코드가 Silverlight와 동일한 쿼리를 반환하는 데 4 배의 시간이 필요하다는 것입니다. – Arys

+0

@Arys 시간을 어떻게 측정합니까? 측정을 시작/중지 할 때? 데이터가 일종의 목록에 표시됩니까? – Romasz

답변

1

동일한 것을 비교하고 있습니까?

Silverlight 버전에서는 완료 핸들러에서 sw.Stop 만 호출 할 수 있습니다.

실제로 비교해보고 싶다면 ETW 추적을 얻어야합니다. 그러면 무슨 일이 일어나는지 정말로 이해할 수 있습니다.

Metro XAML 기반 솔루션의 경우 추가 interop 비용이 발생할 수 있습니다. 그러나 그것은 미래의 길로 보인다.

Silverlight의 경우 기존 API를 더 잘 연마 할 수 있습니다.

두 솔루션 모두에서 작업해야하며 공유 가능한 코드를 가능한 크게 만들고 나중에 어떤 방법으로 결정해야할까요?

+0

나는 똑같은 것을 비교했고 예는 완료 ​​처리기에서 스톱워치를 멈추었습니다. 새로운 OS 빌드로 XAML 버전의 성능이 향상되는 것을 보았습니다. 더 많은 데이터가 있고 성능을 다시 비교하면 결과를 쓸 것입니다. – Arys

+0

늦게 답장을 드려 죄송합니다. 다른 Windows Phone 8.1 빌드를 사용하여 테스트하고 비교했으며 당분간 Silverlight 프로젝트보다 XAML에서 연락처에 대한 액세스가 느립니다. – Arys

+0

@Arys이 주제에 대한 업데이트가 있습니까? 또한 Windows Phone 8.1 xaml 응용 프로그램의 연락처를 가져 오는 동안 심각한 지연에 직면하고 있습니다. – asitis

관련 문제