En az 1 ms doğrulukla bir nesneye ne kadar mesaj gönderileceğini bilmek isterim. Bunu nasıl yaparım?iPhone'da bir işlevi çağırmanın ne kadar süreceğini doğru olarak nasıl zamanlarım?
cevap
İşte böyle yapar:
NSDate * start = [NSDate date];
// do whatever I need to time
NSLog(@"time took: %f", -[start timeIntervalSinceNow]);
çıktı saniye içinde olacaktır (ondalık kısmı ile). NSDate
s milisaniye ölçeğinde çözünürlük var, ancak ne kadar doğru olduklarından emin değilim.
Zaman geçirmeye çalıştığınız kod çok hızlıysa, kodu yüz kez çalıştıran bir döngüye koyun. (Tabii ki, zamanladığınız kodun hiçbir yan etkisi olmadığını varsayar.)
Nanosaniye cinsinden ölçmek için mach_absolute_time
'u kullanabilirsiniz.
#import <mach/mach_time.h>
uint64_t startTime = 0;
uint64_t endTime = 0;
uint64_t elapsedTime = 0;
uint64_t elapsedTimeNano = 0;
mach_timebase_info_data_t timeBaseInfo;
mach_timebase_info(&timeBaseInfo);
startTime = mach_absolute_time();
//do something here
endTime = mach_absolute_time();
elapsedTime = endTime - startTime;
elapsedTimeNano = elapsedTime * timeBaseInfo.numer/timeBaseInfo.denom;
kullanımlar dispatch_benchmark nanosaniye yöntem yürütme zaman oturum açmak için.
mach_absolute_time() dispatch_benchmark, el ile döngüden ve çağırandan daha güzel bir sözdizimine sahiptir. Grand Central Dispatch'in bir parçasıdır.
size_t const blockIterations = 1; //block call count
uint64_t t = dispatch_benchmark(blockIterations, ^{ //your code inside block
[self TEST_processJSONDataRecordsWithCompletionHandler:^(id handler) {}];
});
NSLog(@" Avg. Runtime in nanoseconds : %llu ns", t);
Kredi Benchmarking
gider: Günlük yürütme kezextern uint64_t dispatch_benchmark(size_t count, void (^block)(void));
Bu kullanıyorum: Kendinizi Kullanmadan önce bunu yapmak zorunda olacak böylece bu fonksiyon alenen ilan edilmez
- 1. while döngüsünde bir sorguyu çalıştırmak için ne kadar süreceğini hesaplayın.
- 2. Php PDO işlevi ne kadar güvenli: lastInsertId?
- 3. Hata sayfasına yönlendirme ne kadar doğru? php
- 4. iPhone'un SDK'sındaki GPS okuması ne kadar doğru?
- 5. [super layoutSubviews] öğesini çağırmanın doğru yolu nedir?
- 6. Sml kodumu nasıl zamanlarım?
- 7. Coğrafi kodlama API'sı ne kadar doğru ve en doğru nedir?
- 8. ImagesService.getServingUrl URL'si ne kadar sürer?
- 9. AsyncStorage React Native olarak ne kadar büyük?
- 10. Bir kullanıcının bir TListView'da ne kadar ilerlediğini, ancak kullanıcı kaydırırken ne kadar hesaplama yapıldığını nasıl hesaplarsınız?
- 11. Android ScanResult Zaman Damgası Alanı - Ne kadar doğru?
- 12. PHP'nin substr ne kadar verimli?
- 13. Perl çekirdeğinde ne kadar bir modül var?
- 14. Büyük sayı ne kadar?
- 15. İskele ne kadar ölçeklenebilir?
- 16. Bir görevi bir defa çalışacak şekilde nasıl zamanlarım?
- 17. Ne kadar akıllıca
- 18. Bir kerelik görevleri Perl CGI uygulamasından nasıl zamanlarım?
- 19. onUpdate onUpdat içinde çağrılmayan, her ne kadar
- 20. Bir DataSet ne kadar temsil etmelidir?
- 21. Doğru düzenleyici ne olurdu?
- 22. Chokidar (Node.js) ne kadar verimli?
- 23. CSS'de milimetreler ne kadar doğrudur?
- 24. GORM'in test edilmesi ne kadar?
- 25. Kodumun çalışması ne kadar sürer?
- 26. JOOQ ile toplu olarak saklanan bir işlevi nasıl çağırırsınız?
- 27. SIFR: Çok fazla ne kadar?
- 28. Varlık Çerçevesi Ne Kadar Güvenli?
- 29. Bir sınıfın ne kadar bellek kullandığını belirleyin.
- 30. Bir C# uygulaması ne kadar süredir çalışıyor?
Koştuğum şey bu. Ben sadece darboğazları önemsediğim için çok hızlı olup olmadığımı umursamıyorum. =) – migs647