加载一个窗口有10多s吗?
是不是逻辑有重复刷新?
本机10秒,客户环境30秒+; 没有重复刷新,刷新数据很快,就是加载的控件的时候耗时太长,界面还会(未响应),
@久久婷婷: 感觉不太可能,贴代码看看
@猝不及防:
uclFormalDeclView1 = new uclFormalDeclView();
this.tabDecl.Controls.Clear();
System.Diagnostics.Stopwatch CountStopwatch = new Stopwatch();
CountStopwatch.Start(); // 开始监视代码运行时间
this.tabDecl.Controls.Add(this.uclFormalDeclView1);
CountStopwatch.Stop();
TimeSpan timespan = CountStopwatch.Elapsed; //获取当前实例测量得出的总时间
logger.Error("计时器。加载详细界面总体控件:" + timespan.TotalMilliseconds);
客户端日志:
计时器。加载详细界面总体控件:33318.0336
计时器。加载详细界面总体控件:35573.1982
计时器。加载详细界面总体控件:31018.9395
计时器。加载详细界面总体控件:32268.197
@久久婷婷: vs-调试-性能查看器-应用程序时间线 看一下是否是绘制的时候占用了很多时间
另外看一下cpu和内存,会不会是性能瓶颈了
@猝不及防:
@猝不及防: 我本机一共13秒,加载控件就费了十秒左右。
@久久婷婷: 恐怖如斯,在下是无能为力了,不过我想见试一下这个uclFormalDeclView1长啥样
是不是你添加数据到这个控件上面时慢
你试一下, 空数据加载看看罗
如果空数据加载这个控件快, 说明是你取数据这慢
就得整理取数据的问题, 如果空数据加载也十几秒, 找这个控件公司相关人士, 看看有没有新版本
原因找到了,我的界面上下拉框太多,将近40个下拉框,绑定了基础数据。我将所有下拉框绑定基础数据的逻辑去掉后,界面几秒钟就出来了,然而这些下拉框的基础数据是不可少的。
@久久婷婷: 用另一线程去取数据呀, 不要让他卡着界面
线程, 线程, 这么慢还得优化数据库, 在查找的字段上面加索引, 加索引,加索引
@久久婷婷: 把取的数据做成http接口, 所有人打开这个破软件时, 都用http去取得数据, http接口取数据时进行数据缓存, 10秒左右更新一次数据, 这样就快得不能再快了
@风浪: 基础数据查询在打开软件的时候已经做了,不存在查询数据的问题了,只是绑定的问题。
@久久婷婷: 那用线程去绑定, 不要在主线程上操作, 不然就得卡着界面
@风浪: 其实也不是绑定慢,界面上绑定很快。绑定之后Add控件的时候慢,
其实也不是绑定慢,界面上绑定很快。绑定之后Add控件的时候慢,
解决办法,去掉下拉控件,替换成文本框。
可以试试添加Add控件之前,先把容器界面隐藏起来,添加完成以后再显示界面