Temel olarak C# (hizmetler, çoklu okuma vb.) Ile yazılmış büyük bir projemiz var. Ancak, çekirdek sayısı çatlama algoritmaları, hızlı olmak için (OpenMP vb.) Yönetilmeyen C++ 'da yazılmıştır. Ne yazık ki şu anda bu iki dünya arasında veri alışverişi yapmak için çok çaba sarf etmemiz gerekiyor. Örneğin, C++ sınıflarının her biri için C++/CLI'ye sarma sınıfları yazmamız gerekiyor. C# - "dünyasında" (sanal olarak) istenen herhangi bir ayar (Özellikler) için C++ dünyasında bir kopya (bir başlık dosyası) ve sarmalayıcı sınıfında ileri ve geri dönüşüm vardır. Bu mimari çok verimsiz ve oldukça hataya eğilimli görünüyor.Yönetilmeyen C++ kodunda C# özelliklerini kullanma
Birincil soru: Bir C# sınıfının özelliklerini yönetilmeyen C++ otomatik olarak bir şekilde paylaşmanın bir yolu var mı? (okuyup yazmamız gerekiyor!)
İkincil soru: Yukarıda açıklandığı gibi bir durumda mimarinin nasıl geliştirileceğine dair herhangi bir tavsiyede bulunabilir misiniz? Bizim bir düşüncemiz tamamen C++ 'ya geçmekti, ancak uygun kütüphaneleri bulmak ve NET'te yaptığımız tüm (sistem-) şeyler için temiz kod yazmak şu an iyi hissetmiyor. Yardımlarınız ve saygılarımla, Jakob için
çok teşekkürler
benim birincil görevi belli yüksek performanslarının, düşük gecikme DLL dosyaları için yönetilen arayüzleri yazmak için benim iş yerinde benzer sorunlarla uğraşıyorum
C# 'daki algoritmaları yazmanın bir darboğaz olduğunu doğruladınız mı? C# 4.0 şimdi paralel geliştirme için iyi bir destek var. – Nick
Hayır, bunu henüz yapmadık ve siz haklısınız: Bu noktadan emin olmaya çalışmalıyız. Ancak, belleğin önbelleğe alınması ve benzerlerinin özelliklerine bağlı olduğumuzdan, algoritmanın CLR'de benzer hızda çalışacağından şüpheliyim. –
[Protokol Tamponları] (http://code.google.com/p/protobuf/) nasıl olur? C# ile [protobuf-net] (http://code.google.com/p/protobuf-net/) kullanarak birlikte kullanma yeteneği vardır. – megabyte1024