zoukankan      html  css  js  c++  java
  • 性能优化

    从第1版起,核心的投标引擎基本没有动,运行几十天也都正常。正好其他事情差不多了,想着再优化优化。我对比了本地和服务器的数据,以抓取概略标的为例,本地平均时间是220ms左右,服务器是120ms左右,快一些很正常。

    后面,我基本就以本地数据为主,服务器肯定会快一些。

    对引擎而言,主要工作就这些:抓概略标的——抓详细标的——比较投标——其他辅助处理。

    本地概略标的每次耗时220ms,优化余地不大。

    详细标的每次耗时500-600ms,最重要的耗费还是以http方式抓数据,但接口就是如此,要提高很难。

    比较:0.4-2.8ms,相比之下是比较少的

    投标:不是固定的耗费,用户多的话可以再优化,目前必要性不大。

    本以为详细数据是问题关键,分析半天也没有太好的办法。最后发现,其实还有一个真正的“硕鼠”,就是其他辅助信息的获取。定期获取用户资金,我还追踪了满标的时间,计算每次的耗费,居然达到秒级!

    发现问题,解决就很简单了,把用户数据更新的频率和次数优化,把满标时间分离到另外一个程序中,结果就大大改进了。原来统计,用于抓概略标的的CPU时间是最多的(因为详细标的并不常有),稳定后,服务器上这个时间占比能够到47%,也就是说,一半时间都在抓标。

    优化之后,这个比例达到85%以上,换言之,几乎所有的时间都在跟踪标的,把对标的的反应间隔尽可能缩到最小。感觉对于满标极快的标的,抓的成功率高多了。这是最近投标的满标时间:

    image

  • 相关阅读:
    c# udp局域网通信
    wpf 空白汉字占位符
    直角三角形知道变长求夹角
    windowsphone 的IsolatedStorageSettings存储类型
    WPFUIElement的Background的问题
    oracle外表
    oracle安装
    数据库ddl,dml,dcl
    OLTP与OLAP的介绍
    四种XML解析方式详解
  • 原文地址:https://www.cnblogs.com/jetz/p/7446208.html
Copyright © 2011-2022 走看看