问题描述
小弟最近在做一个工业控制上位机软件项目,准备用C#界面,C++/cli封装层,c++做底层算法,底层算法里面的数据很多是多层vector嵌套,C#里面用多层List嵌套去接收,发现性能很差,不知道哪位大大知道有类似的开源项目没有?三层架构的就可以了。
解决方案
解决方案二:
自己顶一下!!!!
解决方案三:
能推荐几本C++CLI的参考书不?这类书感觉好少
解决方案四:
该回复于2016-01-31 23:14:33被版主删除
解决方案五:
性能很差?c#和C++PI/invoke的数据量很大么,c#界面应该偏重业务逻辑,C++搞算法计算才对,如果没有很多计算的话,都用C#好了
解决方案六:
你可以做个测试,计算下性能:1.得到C++计算一条数据的时间2.得到C#接收,显示,存储一条数据的时间3.得到从数据产生到结束的时间实际技术细节解决要靠自己,别人只能给方向,这样你就可以计算出你整个数据的时间,看看是哪里效率比较低,再想解决方案
解决方案七:
c++应该只返回简单数据类型给c#用
解决方案八:
推荐使用clr,把c的底层算法类封装成c#类库,在c#直接调用。新建工程》visualc++》CLR》类库,语法什么的自己琢磨吧,基于C++扩展了c#里的概念,比如多了gcnew(对应C#里的new,clr里的new还是c的new)和%(对应C#里的引用)等。
解决方案九:
你的这个推荐,封装接口只是用于显示。这样c#只用于显示不会有什么效率问题。
解决方案十:
进一步考虑扁平化,优化算法。减少交互的频度。
解决方案十一:
最后实验发现大部分时间消耗在底层C++的push_back,交互对性能基本没有什么消耗
解决方案十二:
解决方案十三:
vector性能是很差的。比c#还差。c#简单。用c#足够了。又没有多大
解决方案十四:
与托管代码交互,就不要用vector,定义可导出的结构体结合数组之类的一般够用
解决方案十五:
.net的性能一点也不差。人家做大型地质灾害卫星遥感数据分析的,用c#程序跟c++开发整个分析程序做实际测试,发现并不慢。反而你弄点小东西,数据”转来转去地“就慢了。
解决方案:
解决方案:
该回复于2016-01-31 23:17:38被版主删除
解决方案:
工业控制上位机软件项目?不就是串口通讯,接收数据。弄个缓存。收到数据再画图。显示,入库。其实用c#蛮好的。也硬件绑定的你非得搞两种语言不麻烦吗?
解决方案:
纯数字运算,C#与C++没有任何性能差别,而且C#底层能力也不差,如果不是必须,例如编写系统驱动,否则没有用C++的必要