DevExpress控件初始化速度慢

sj490790083 2017-08-16 04:03:25
如题,有几个窗体,每个大概拖了十几个DEV的控件,光初始化(InitializeComponent)一下就得500ms以上,导致界面第一次点开给人感觉不流畅,有啥办法解决不?换控件重做界面不太现实。
...全文
2470 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
圣殿骑士18 2017-12-01
同问。 其实我对你用Stopwatch测试InitializeComponent方法的结果深表怀疑,是不是你测试方法上有漏洞。 我原来也是认为慢的原因是InitializeComponent的方法上,所以我也使用Stopwatch测试过,我是明确的把Stopwatch的Start和Stop就放在InitializeComponent方法的前后,中间就一句话InitializeComponent(),结果是执行InitializeComponent()实际上非常快,它实际上就是new dev对象,不会慢,我原来以为dev的组件,论继承,有十几层,那当然慢,但测试结果并不是这样,一般几十毫秒也就执行完了。 那如果不是InitializeComponent慢,那哪里慢呢?我只能猜测是: 1、加载dev相关的dll慢,而这个慢是查不出来的,因为winform似乎没开放dll加载的事件,能让我们了解加载的快慢。 2、显示慢,这个也是winform无法测试的,InitializeComponent很快,Form_load也快,但tmd显示出来就是慢,我只能猜测是dev的UI渲染很吃显存?电脑因为显存不足,所以渲染慢? 反正都是瞎猜。
回复
by_封爱 2017-12-01
鱼跟熊掌不可得兼.. 好看的代价肯定是牺牲了性能..任何控件都一样. 拿我们常用的easyui的一个button来说. 我用<asp:button 的性能是<a class=easyui-button的3倍, 因为后者生成了一大堆的html.... 当然了这是web..dev在web上表现也是一样. 功能强大 UI漂亮..就是速度太慢了... 在CS上 也是一样的道理.
回复
风吹一场梦 2017-12-01
有这个问题,我反正是能用异步都异步加载了,但是启动有时候还是要反应一下
回复
sj490790083 2017-08-16
引用 6 楼 duanzi_peng 的回复:
[quote=引用 5 楼 sj490790083 的回复:] [quote=引用 3 楼 duanzi_peng 的回复:] 慢正常啊,用它的splashmanager控件 搞一个进度条会好点。
只是第一次初始化会慢,第二次开始就快了很多,这个原理知道是啥不[/quote] 不清楚呀,清楚的话我都自己自定义控件,然后开源给大家。[/quote] 没办法了,打算在登录的时候把慢的窗体先全部初始化一遍。
回复
exception92 2017-08-16
引用 5 楼 sj490790083 的回复:
[quote=引用 3 楼 duanzi_peng 的回复:] 慢正常啊,用它的splashmanager控件 搞一个进度条会好点。
只是第一次初始化会慢,第二次开始就快了很多,这个原理知道是啥不[/quote] 不清楚呀,清楚的话我都自己自定义控件,然后开源给大家。
回复
sj490790083 2017-08-16
引用 3 楼 duanzi_peng 的回复:
慢正常啊,用它的splashmanager控件 搞一个进度条会好点。
只是第一次初始化会慢,第二次开始就快了很多,这个原理知道是啥不
回复
班门弄武 2017-08-16
看一下你的字体有没有变,有的话换回来.
回复
exception92 2017-08-16
慢正常啊,用它的splashmanager控件 搞一个进度条会好点。
回复
sj490790083 2017-08-16
引用 1 楼 starfd 的回复:
devexpress本来就有慢的问题,但10几个控件不至于显示慢吧,慢的问题是不是在你的数据加载上
我用StopWatch监控了一下,确实执行了一下InitializeComponent就花了500多ms,数据加载我全部改成异步了,在初始化的时候几乎不耗时
回复
devexpress本来就有慢的问题,但10几个控件不至于显示慢吧,慢的问题是不是在你的数据加载上
回复
相关推荐
发帖
组件/控件开发
创建于2007-09-28

8838

社区成员

.NET技术 组件/控件开发
申请成为版主
帖子事件
创建了帖子
2017-08-16 04:03
社区公告
暂无公告