我在C#/Winforms中实现了一个自定义控件,它执行语法高亮和自动完成等操作。我使用AutoScroll来管理滚动,它运行得很好。
目前,我根本没有进行优化(当然优化很重要,但我要做的是最后一次;功能是我首先要做的),我正在呈现巨大的文档,每个按键都将重新解析受影响的行,以确保语法高亮显示是一致的。
现在,在我的大肉质油漆方法,我正在绘画每一个字符串,关键字等,即使它是在剪辑区域之外。但是,不管文档有多大&我有多少关键字/突出显示的位元和片段的组合,它仍然运行得非常快,内存和CPU开销也不多。
那么我的问题-- Graphics.Draw*方法做了什么选择吗?如果AutoScrollPosition在文档&i Graphics.DrawString下(在绘图区域外插入一些坐标),是否正在进行任何实际工作?还请注意,我在VM中运行VS on Win 7,而且它仍然运行得很快。这并不是现在的问题,但是在以后的优化阶段最好记住这一点。:D
干杯,亚伦
发布于 2011-12-14 23:53:33
从使用Graphics.Draw*方法编写游戏的个人经验来看,如果在调用绘图方法之前执行自己的边界检查,则会注意到速度的提高。
试图在屏幕外画东西比在屏幕上画东西要快,但它仍然比根本不画东西慢得多。
https://stackoverflow.com/questions/8513366
复制相似问题