咨询热线:400-818-1122
首页
致远软件专题首页 > 企业动态
网站流量访问统计系统开发过程分成两部分
上传日期:2019-07-29 09:44 文章来源:

     我们把网站流量访问统计系统开发过程分成了两个阶段:第一个阶段聚焦于单用户,第二个阶段聚焦于多用户。按照初步的设想:在单用户下,我们会关注耗时的SQL语句、单个事务中的数据库访问次数、明显低效的算法、缓存的使用、计算负载过重的循环块、重复的业务计算等;在多用户下,我们会关注CPU和内存的使用状况、GC的频率、线程竞争、网络流量、数据库负载等。

    很明显,经过上面的划分,我们开始有了一些比较具体的设想。这些设想听上去的第一感觉是,尽管头绪繁多,但还算有一定的条理。可是,网站流量访问统计系统开发按照这些设想实际做起来却远远没有听上去那么容易,因为关键的问题还没有解决。例如,如何关注耗时的SQL语句?如何找到针对这些SQL的解决方案?这些经典的“如何”句式是实践者的最爱,也是实践者最常感到困惑的地方。

    致远服软认为:http://www.soft8.com.cn/选择Yourkit作为Java Profiler工具。事实上,和大多数的Java Profiler工具一样,Yourkit几乎可以提供所有关于性能的数据,其中包括执行SQL语句所占用的CPU时间。不过,和大多数的Java Profiler工具一样,Yourkit提供的性能数据并不准确,这种不准确是由Java Profiler工具的实现机制决定的。这些工具大多通过特定的API(例如,从Java 5开始提供的JVMTI——JVM Tool Interface)与JVM进行通信。

    JVMTIJVM Tool Interface)是Java虚拟机所提供的native编程接口,是JVMPIJava Virtual Machine Profiler Interface)和JVMDIJava Virtual Machine Debug Interface)的更新版本。从这个API的发展历史轨迹中我们就可以知道,JVMTI提供了可用于debugprofiler的接口;同时,在Java 5/6中,虚拟机接口也增加了监听(Monito-ring)、线程分析(Thread analysis)以及覆盖率分析(Coverage Analysis)等功能。正是由于JVMTI的强大功能,它是实现Java调试器以及其他Java运行态测试与分析工具的基础。

    JVMTI使用了所谓的“字节码检测”(bytecode instrumentation)技术,这意味着Java Profiler工具在收集分析数据时会修改应用程序的字节码,并在特定的位置插入一些字节码指令。这显然会影响被分析应用程序的执行效率。有时候,这种影响会干扰分析人员的判断。当然,如果你追求比较接近真实的性能数据,就可以关闭recording object al-location和CPU tracing而使用CPU sampling功能,但是影响仍然存在。

    Yourkit作为数据库服务器的客户端,自动化软件测试其实无法真正地给出SQL语句的执行时间,这里面也许有网络的因素。在大多数的情况下,我们不关注客户端或者服务器端对SQL语句执行时间统计的差异,网站流量访问统计系统开发尽管不在一个数量级上,但绝对差值并不大。但是,有些时候我们仍然需要对SQL语句执行效率的细微差异进行关注。例如,SQL语句执行的次数非常多。

免责声明:网站内涉及到图片及相关文字如涉及到侵权,请及时联系我们处理
< 返回列表
企业动态推荐
致远服软让IT更简单,更安全,更有价值
咨询热线:400-818-1122