通常,在使用Google Chrome的networking面板对问题进行问题排查时,我会看到不同的时间,并经常想知道它们的含义。 有人可以validation我正确理解这些: 阻止:浏览器的多个请求阻止相同的域限制(???) 等待:正在等待来自服务器的连接(???) 发送:将文件从服务器传输到浏览器的时间(???) 接收:浏览器分析和解码文件花费的时间(???) DNS查找:花在parsing主机名上的时间。 连接:build立套接字连接的时间。 现在怎么会有人修复很长的阻塞时间? 现在,如何解决漫长的等待时间呢?
显然我可以做和DateTime.Now.After – DateTime.Now.Before但一定有更复杂的东西。 任何提示赞赏。
在MySQL中,哪种方法可以更快的计数? 这个: SELECT COUNT(*) FROM … WHERE … 或者,替代scheme: SELECT 1 FROM … WHERE … // and then count the results with a built-in function, eg in PHP mysql_num_rows() 有人会认为,第一种方法应该更快,因为这显然是数据库领域,数据库引擎在内部确定这样的事情时应该比其他任何人都快。
这个问题在这里继续我的问题(根据神秘的build议): C代码循环的性能 继续我的问题,当我使用打包指令,而不是标量指令使用内在函数的代码看起来非常相似: for(int i=0; i<size; i+=16) { y1 = _mm_load_ps(output[i]); … y4 = _mm_load_ps(output[i+12]); for(k=0; k<ksize; k++){ for(l=0; l<ksize; l++){ w = _mm_set_ps1(weight[i+k+l]); x1 = _mm_load_ps(input[i+k+l]); y1 = _mm_add_ps(y1,_mm_mul_ps(w,x1)); … x4 = _mm_load_ps(input[i+k+l+12]); y4 = _mm_add_ps(y4,_mm_mul_ps(w,x4)); } } _mm_store_ps(&output[i],y1); … _mm_store_ps(&output[i+12],y4); } 这个内核的testing性能是每个周期大约5.6个FP操作,但是我认为它恰好是标量版本的4倍,即4.1,6 = 6,4个FP操作每个周期。 考虑到重量因素的移动(感谢指出),时间表看起来像: 它看起来像日程安排不会改变,虽然在movss操作之后有一个额外的指令,将标量权值移到XMM寄存器,然后使用shufps在整个vector中复制这个标量值。 考虑到从负载到浮点域的切换延迟时间,似乎权重vector已经准备好用于mulps ,所以这不应该引起任何额外的延迟。 在这个内核中使用的movaps (alignment的,压缩的移动), addps & mulps指令(用汇编代码检查)与标量版本具有相同的延迟和吞吐量,所以这不应该引起任何额外的延迟。 […]
简介:我用C#编写高性能的代码。 是的,我知道C ++会给我更好的优化,但我仍然select使用C#。 我不想辩论这个select。 相反,我想听听那些和我一样,试图在.NET Framework上编写高性能代码的人。 问题: 为什么下面的代码中的运算符比等效的方法调用慢? 为什么在下面的代码中传递两个双精度的方法比传递一个内部有两个双精度的结构的等价方法快呢? (答:老JITs优化结构不佳) 有没有办法让.NET JIT编译器像结构体的成员一样有效地对待简单结构体? (答:得到更新的JIT) 我想我知道:原始的.NET JIT编译器不会内联任何涉及结构的东西。 奇怪的给定的结构应该只用于你需要小的值types,应该像内置优化,但是真实的。 幸运的是,在.NET 3.5SP1和.NET 2.0SP2中,他们对JIT Optimizer进行了一些改进,包括对内联的改进,特别是对结构的改进。 (我猜他们是这样做的,否则他们所引入的新复杂结构将会执行非常糟糕的事情……所以复杂团队可能正在冲击JIT Optimizer团队。)因此,.NET 3.5 SP1之前的任何文档可能这个问题不太相关。 我的testing显示:我已经通过检查C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ mscorwks.dll文件是否具有> = 3053版本来validation我是否具有较新的JIT Optimizer,因此应该有这些改进到JIT优化器。 但是,即使如此,我的时间表和反汇编看起来都是: JIT生成的用于传递两个双精度结构的代码比直接传递两个双精度的代码效率低得多。 与传递结构作为参数相比,JIT为struct方法生成的代码传递“this”的效率要高得多。 如果你传递两个双打而不是传递一个带有两个双精度结构的JIT,则JIT仍然更好,即使乘法器由于清楚地处于一个循环中也是如此。 定时:实际上,在反汇编中,我意识到循环中的大部分时间只是从列表中访问testing数据。 如果将循环的开销代码和数据的访问分解出来,那么进行相同调用的四种方法之间的区别是显着不同的。 我可以从5倍到20倍的任何地方做PlusEqual(double,double)而不是PlusEqual(Element)。 和10倍到40倍做PlusEqual(double,double)而不是operator + =。 哇。 伤心。 以下是一组计时: Populating List<Element> took 320ms. The […]
当试图理解SQL语句如何执行时,有时build议查看解释计划。 在解释解释计划(有意义)时应该经历什么过程? 什么应该突出,“哦,这是出色的工作?” 对“哦,不,这是不对的。”
对于包含dynamic内容和个性化的复杂Web应用程序,服务器的响应时间是多less(这样排除networking延迟和浏览器渲染时间)? 我正在考虑像Facebook,亚马逊,MyYahoo等网站。一个相关的问题是什么是一个良好的后端服务响应时间?
我在Surface Pro 2平板电脑上运行Windows 7 x64,Java 7更新为45 x64(没有安装32位Java)。 下面的代码需要1688毫秒,当我是一个长的types和109毫秒时,我是一个整数。 为什么在64位JVM的64位平台上,long(64位types)比int要慢一个数量级? 我唯一的猜测是,CPU需要更长的时间来添加一个64位整数比32位,但似乎不太可能。 我怀疑Haswell不使用涟漪加法器。 我在Eclipse Kepler SR1中运行这个,顺便说一句。 public class Main { private static long i = Integer.MAX_VALUE; public static void main(String[] args) { System.out.println("Starting the loop"); long startTime = System.currentTimeMillis(); while(!decrementAndCheck()){ } long endTime = System.currentTimeMillis(); System.out.println("Finished the loop in " + (endTime – startTime) + "ms"); } […]
我试图从www.spoj.com解决这个练习: FCTRL – Factorial 你真的不需要阅读,只要你好奇:) 首先我用C ++实现它(这里是我的解决scheme): #include <iostream> using namespace std; int main() { unsigned int num_of_inputs; unsigned int fact_num; unsigned int num_of_trailing_zeros; std::ios_base::sync_with_stdio(false); // turn off synchronization with the C library's stdio buffers (from https://stackoverflow.com/a/22225421/5218277) cin >> num_of_inputs; while (num_of_inputs–) { cin >> fact_num; num_of_trailing_zeros = 0; for (unsigned int fives = 5; […]
我想知道使用BaseAdapter和ArrayAdapter之间的区别。 我一直通过ArrayAdapters实现我想要的。 它是否会影响实现它的适配器接口上的ListView的性能? 而且,最后一个问题是,我可以通过使用任何这些Adapters来实现对ListView任何操作,或者在某些情况下只能使用特定的适配器?