C#的画图效率问题

rogetshao0001 2018-02-05 08:31:05
用VS2015 c#的Graphics以及WINAPI生成了一个迷宫,很费时
又用VS2015 C++同样编了一个,调用基于turbo c 的easyx库,结果发现,C++比C#快了近100倍,这是怎么回事?如何提高C# graphics的效率
...全文
1447 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rogetshao0001 2018-02-07
  • 打赏
  • 举报
回复 1
找到了C#解决方案,尝试了三种绘图方法: 第一种,也就是我开始贴的方法,直接对窗口的graphics画图,效率很慢; 第二种,采用双缓存方法,先对bitmap内存操作,然后用drawimag画到窗口,如果画完一次性drawimage,效率能提高100倍,但看不到画图过程,如果逐段drawimage,也就是画一段调用一次drawimage,效率只增加10倍; 第三种,采用BitBlt,直接对设备内存操作,逐段drawimage,效率提高100倍; 也就是第三种方法效率最高。
土豆赛叩 2018-02-06
  • 打赏
  • 举报
回复
发出你的画图代码!这样子没法看! c#也是封装的 gdi+ 虽然是慢点 还不至于100倍!
rogetshao0001 2018-02-05
  • 打赏
  • 举报
回复
这是我对两者的时间统计 c++ 迷宫规模 18369(157列*117行) 生成时间 859毫秒;不到一秒,一闪而过; c# 迷宫规模 17955( 189列*95行) 生成时间68422毫秒,一分多钟;
xuzuning 2018-02-05
  • 打赏
  • 举报
回复
这是不可能的
rogetshao0001 2018-02-05
  • 打赏
  • 举报
回复
算法一样的,都是我自己编的,我就是觉得C#有点慢,就把代码拷到C++里,试了一下,唯一的差别就是两者的画图函数不一样。
xuzuning 2018-02-05
  • 打赏
  • 举报
回复
这应该是迷宫声称算法的问题,而不是画图问题
rogetshao0001 2018-02-05
  • 打赏
  • 举报
回复
有大拿知道这是什么原因吗?c#画图效率比VC++慢100倍

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧