C++ kodumdan MATLAB'de yazılan bir DLL'yi arıyorum. Garip bir etki gözlemliyorum: ilk arama, sonraki aramaların daha uzun sürmesi demektir. 3-4 kat daha fazla sürer. Normal mi? Onunla bir şey yapmak mümkün mü?Matlab DLL'sine yapılan ilk çağrı neden sonraki aramalardan daha uzun sürüyor?
cevap
Bu normaldir, gecikme MATLAB Runtime Compiler'un başlatılmasıyla gelir. MATLAB kodunu MATLAB aracılığıyla oluşturduğunuz dll'den çalıştırdığınız budur. İlk başlangıçta AFAIK önlenemez, ancak daha sonra "maliyet" den kaçınmak için uygulama başladığında DLL için bir kukla çağrı ekleyebilirsiniz.
Soru kilitlendiğinden, bunu bir yorum olarak ekleyeceğim. İki tür gecikme vardır - ilk kez uygulamanızı ilk kez * bu bilgisayarda * çalıştırdığınızda, ZIP dosyası çıkarılır ve MCR başlatılır. İkinci tür, bu uygulamayı bir kez çalıştırdığınız zamandır. Daha sonra sadece MCR yüklenir. –
Matlab Runtime Compiler'i başlatmanın gecikmesi mclInitializeApplication veya
Birkaç DLL dosyasında birkaç MATLAB işlevine sahip olsaydım, bu tür bir gecikme her işlevin ilk çağrısında olur mu? – user1913557
- 1. MSBuild ile derleme neden IDE'den daha uzun sürüyor?
- 2. Neden bu işlevi bir işlevde çalıştırmak 10x daha uzun sürüyor?
- 3. ob_flush, yürütülmesi uzun sürüyor
- 4. heroku konuşlandırılıyor çok uzun sürüyor
- 5. MS2015'te MvcBuildViews uzun sürüyor
- 6. Opencart kaydı çok uzun sürüyor
- 7. Dinamik SQL sabit kodlanmış eşdeğerden çok daha uzun sürüyor
- 8. IIS Express istekleri yürütmek için 4 kez daha uzun sürüyor
- 9. İlk 10 kaydı seçtikten sonra, sonraki 10, Linq kullanarak çağrı
- 10. dosya io çok uzun sürüyor
- 11. Meteor'un verilerimi Heroku'ya yüklemesi neden bu kadar uzun sürüyor?
- 12. Azure VIP takası bir dakikadan daha uzun sürüyor
- 13. Dağıtılmış bir Meteor sitesinin yüklenmesi neden bu kadar uzun sürüyor?
- 14. Perl'de "\ n" yazdırmak neden bu kadar uzun sürüyor?
- 15. Macports GHC paketi neden bu kadar uzun sürüyor?
- 16. Yalnızca Dizin Taraması neden bu kadar uzun sürüyor?
- 17. Özel deserializer ile çıkarılan Jackson, çok fazla GC çağrısına neden oluyor ve çok daha uzun sürüyor
- 18. Bazı AJAX çağrıları, URL'lerin aynı yanıt süresine sahipken neden diğerlerine göre daha uzun sürüyor?
- 19. kesilmiş masa çok uzun sürüyor, normal mi?
- 20. MySQL Sıralama Sonuçları çok uzun sürüyor
- 21. Neden PostgreSQL sorguları, ilk istekte sonraki istekler sırasında ilk istekte daha yavaştır?
- 22. UIDocumentInteractionController, seçenekleri göstermek için uzun sürüyor
- 23. Django işleme MultipleChoiceField verileri çok uzun sürüyor
- 24. Mockito, sonraki bir void yöntemine yapılan çağrılarda farklı davranışlar?
- 25. Meteor 1.0 - "Uygulamanın Oluşturulması" niçin eskiden olduğundan çok daha uzun sürüyor?
- 26. HTTP Post istekleri 2 saniye sürüyor, neden?
- 27. Aerospike 10 milyon anahtar değer eklemek için çok uzun sürüyor
- 28. git status, virtualbox'ta paylaşılan bir klasörde çok uzun sürüyor
- 29. selenium webdriver bir sayfa yüklemek için çok uzun sürüyor
- 30. Daha uzun satırlar()
Aramaları C++ kodunuzda nasıl yapıyorsunuz? –
Mükemmel bir soru. Muhtemelen Matlab dışı kullanıcılar yanlış anlaşılma nedeniyle kapattılar. –
Anlamadan kurtulmanın tek yolu, Matlab kodunu [Matlab Coder] (http://www.mathworks.com.au/products/matlab-coder/index.html) kullanarak C veya C++ koduna dönüştürmektir. daha sonra oradan derleyin. @NominSim'in işaret ettiği gibi, "derlenmiş" Matlab kodu aslında derlenmiyor - bu konu hakkında iyi bir cevap var [burada] (http://stackoverflow.com/questions/8636267/matlab-code-after-compilation) –