性能优化
时间:2022-04-23
本文章向大家介绍性能优化,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
从第1版起,核心的投标引擎基本没有动,运行几十天也都正常。正好其他事情差不多了,想着再优化优化。我对比了本地和服务器的数据,以抓取概略标的为例,本地平均时间是220ms左右,服务器是120ms左右,快一些很正常。
后面,我基本就以本地数据为主,服务器肯定会快一些。
对引擎而言,主要工作就这些:抓概略标的——抓详细标的——比较投标——其他辅助处理。
本地概略标的每次耗时220ms,优化余地不大。
详细标的每次耗时500-600ms,最重要的耗费还是以http方式抓数据,但接口就是如此,要提高很难。
比较:0.4-2.8ms,相比之下是比较少的
投标:不是固定的耗费,用户多的话可以再优化,目前必要性不大。
本以为详细数据是问题关键,分析半天也没有太好的办法。最后发现,其实还有一个真正的“硕鼠”,就是其他辅助信息的获取。定期获取用户资金,我还追踪了满标的时间,计算每次的耗费,居然达到秒级!
发现问题,解决就很简单了,把用户数据更新的频率和次数优化,把满标时间分离到另外一个程序中,结果就大大改进了。原来统计,用于抓概略标的的CPU时间是最多的(因为详细标的并不常有),稳定后,服务器上这个时间占比能够到47%,也就是说,一半时间都在抓标。
优化之后,这个比例达到85%以上,换言之,几乎所有的时间都在跟踪标的,把对标的的反应间隔尽可能缩到最小。感觉对于满标极快的标的,抓的成功率高多了。这是最近投标的满标时间:
- 洛谷P1311 选择客栈
- 洛谷P1607 [USACO09FEB]庙会班车Fair Shuttle
- R语言抓包实战——知乎live二级页面获取
- 左手用R右手Python系列——面向对象编程基础
- 线性同余同余方程组解法(excrt)
- #19. 计数(容斥原理)
- 左手用R右手Python系列——多进程/线程数据抓取与网页请求
- #15. 钻石
- P1328 生活大爆炸版石头剪刀布
- ASP.NET MVC 5 Authentication Breakdown
- jquery easyui datagrid mvc server端分页排序筛选的实现
- 左手用R右手Python系列——使用多进程进行任务处理
- 2017.9.17校内noip模拟赛解题报告
- MySQL基础入门——MySQL与R语言、Python交互
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法