我是如何定位和处理大数据容易报错
2023-06-13 09:11:03 时间
很长时间没跟大家共同进步了,一直都在忙某行业的深潜和发掘;所以疏远了技术的研究。刚好昨天遇到一个行业软件进行大数据导入后通过算法匹配出现报错的情况。简单地先说一下这个行业软件框架,用的是SQLlite数据库,WINFORM做的客户端,后端通过服务进行数据处理;客户端与后端服务就是通过HTTP协议传输。大体就这样,先不说什么多并发及用户控制等,反正现成的前人载树也就这样。那目前遇到的问题就是当用户导入大批量数据后,服务端写库成功后,要对数据进行逻辑分析将结果呈现在客户端。刚才都说因为客户端是通过HTTP协议传输所以客户端直读导入数据后post发送给服务端就是了,服务端写库完善,这块基本没毛病,毛病就是在对数据处理这边。大数据一处理就耗时而客户端等待时间过长就会报错。
那么我们先要把在那个处理数据耗时点找出来。怎么找呢?我这边就是通过在程序中埋入时间点,从程序开始埋入一个起步时间然后再在不同点进行时间比较;不废话直接上码。
先定义开始时间:
DateTime beforDT = System.DateTime.Now;
System.Diagnostics.Debug.WriteLine("Save_start====>" + beforDT);
获取执行过程中第一定义时间
DateTime afterDT = System.DateTime.Now;
TimeSpan ts = afterDT.Subtract(beforDT);
System.Diagnostics.Debug.WriteLine("Save_start==A==>" + ts.TotalMilliseconds);
第二节点时间
afterDT = System.DateTime.Now;
ts = afterDT.Subtract(beforDT);
System.Diagnostics.Debug.WriteLine("Save_start==B==>" + ts.TotalMilliseconds);
这样就可以通过输出窗口获得程序的顺序和时间,对比就能查出那个耗时然后就进行处理。
通过分析后发现是由于程序中的UPDATE语句导致耗时比较长细看之下一个更新表竟然用了2条update所以就这里卡了,因此将其改为一条搞掂。
这样由原来执行的时间大大减半,之后再通过对程序的多线程和async异步进行处理;重新测试就解决大数据报错的问题,效率也是钢钢的。
相关文章
- supergo任我行纵行指南针TT硕点YY考勤打卡定位下载及安装教程
- 动态的城市环境中杆状物的提取建图与长期定位
- [完整案例]编程实现动物头像定位-02
- HTML---百度新闻轮播图--定位练习
- 【解疑】ConcurrentHashMap 在JDK1.7时候put或get时候,怎么定位到数据的?
- app自动化测试之Appium问题分析及定位
- 【CSS】绝对定位元素设置 水平 / 垂直 居中 ( 绝对定位元素居中设置 - 先偏移 50% 再回退子元素一半尺寸 | 绝对定位居中设置 )
- Linux查看端口占用情况:快速定位包含端口的进程(linux查看端口使用情况)
- 与优化MySQL慢查询定位与优化:路径分析与改善(mysql慢查询定位)
- Linux库文件:定位指南(linux库文件位置)
- MongoDB查询指定字段:精准定位数据(mongodb查询指定字段)
- MongoDB应用之附近的人定位(mongodb附近的人)
- Redis 条件查询技巧,轻松定位目标数据(redis 条件查询)
- MySQL三条件查询,快速精准定位目标数据(mysql 三个条件查询)
- MySQL双层树查询快速定位数据位置(mysql两层树查询)
- 绝对定位的DIV宽度自动适应的一个方法
- JQuery弹出框定位实现方法
- jquery中通过父级查找进行定位示例
- js里取容器大小、定位、距离等属性搜集整理