Django调试工具栏:理解时间面板
我正在使用Django调试工具栏来分析我的网站,想找出为什么某些页面加载得这么慢。这个工具对我来说非常有帮助,让我能看到我运行了哪些查询,以及这些查询花费了我多少时间。不过,我对时间面板的读法有点困惑。
我到处找了找文档,但似乎没有找到相关的信息。我得提一下,我是自学的,相对来说还是个新手程序员,所以这些可能是经验丰富的程序员会熟悉的术语。
这是输出结果:
Resource Value
User CPU time 3760.000 msec
System CPU time 340.000 msec
Total CPU time 4100.000 msec
Elapsed time 4625.453 msec
Context switches 248 voluntary, 467 involuntary
有没有人能帮我理解一下这个输出,里面每个值代表什么呢?
谢谢。
1 个回答
51
用户 CPU 时间: 这是指你的服务器代码在处理请求时实际运行的时间。
系统 CPU 时间: 这是指操作系统的代码在你的服务器代码处理请求时运行的时间。
总 CPU 时间: 这是从请求被接收到完全响应所花费的总时间(包括用户时间和系统时间)。
经过时间: 这是从请求发出到现在所经过的时间。
上下文切换: 这和线程有关。自愿切换是指线程自己选择暂停(通常是为了等待一些处理完成,以便继续进行),而非自愿切换是指系统强制一个线程暂停,以便运行其他线程(通常是异步处理的一部分)。这其实是比较底层的系统知识,我在这里讲得不够详细。如果你想了解更多,可以搜索一下“上下文切换”。