2012-09-05 24 views
5

Boost python ile deneme yaptığım bir proje üzerinde çalışıyorum. Python arayüzümü nasıl düzenleyeceğime baktığımda, boost python'la ilgili performans sorunları olduğunu iddia eden bir comment'a rastladım. Performansıyla ilgili gerçek bir endişe var mı?Boost Python'un Performansı

Bu durumda büyük bir proje ile çalışıyorum ve bazılarını python'a göstermek istiyoruz. Bu destek python'unun sahip olduğum sınıfları ortaya çıkarmayı kolaylaştırdığını düşünüyorum. Bu yüzden, python'un dersleri sergileme yöntemlerini desteklemeyi tercih ederim çünkü çok kolay. Birisi, kullanımı ve performansı kadar kolay olan bir alternatifi yoksa.

cevap

2

Geniş bir bilgisayar vizyon kütüphanesinin diğer alanlarda araştırmacılar için yüksek düzeyde yapılandırılabilir bir yazılım paketine entegrasyonu için boost :: python kullanıyoruz. Bilmemiz için endişelere ya da sorunlara rastlamadık. Bununla birlikte, son zamanlarda herhangi bir karşılaştırma testi yapmadık.

2

Kullanım durumunuz, sıkı bir döngüde Python ve C++ arasında çok sayıda çağrı gerektiriyorsa, Boost.Python en azından Python C-API kullanan el ile paketlenmiş sargılara göre bir performans sorunu olabilir. direkt olarak. SWIG gibi kullanıcı dostu bir şeyden daha kötü performans gösterip göstermeyeceğini tahmin etmek çok daha zor.

Ancak, en büyük performans sorusu, bu tür ileri geri hareketlerden kaçınmanız olup olmadığıdır - C++/Python bariyerini geçmeyi engelleyebilen bir API, genellikle, her zaman, kitaplık veya sarıcı aracından bağımsız olarak, her zaman birinden daha iyi performans gösterecektir. kullan. Çoğunlukla bu, Python'dan C++'ya döngüleri hareket ettirmek ve Python geri aramalarını ve özellikle bu döngüler içindeki Python'dan C++ tipi dönüşümleri önlemek anlamına gelir.