Tag: 高性能

英特尔Broadwell处理器中出现的重大FMA性能exception

代码1: vzeroall mov rcx, 1000000 startLabel1: vfmadd231ps ymm0, ymm0, ymm0 vfmadd231ps ymm1, ymm1, ymm1 vfmadd231ps ymm2, ymm2, ymm2 vfmadd231ps ymm3, ymm3, ymm3 vfmadd231ps ymm4, ymm4, ymm4 vfmadd231ps ymm5, ymm5, ymm5 vfmadd231ps ymm6, ymm6, ymm6 vfmadd231ps ymm7, ymm7, ymm7 vfmadd231ps ymm8, ymm8, ymm8 vfmadd231ps ymm9, ymm9, ymm9 vpaddd ymm10, ymm10, ymm10 vpaddd ymm11, ymm11, ymm11 vpaddd […]

Jmeter替代

我正在寻找一个免费/更简单的替代JMeter。 这是一个非常完整而又复杂的工具,我需要的只是模拟一些同时对站点的调用,获取有关性能的统计信息(响应时间),查看可以忍受多less并发呼叫而不会中断。 有些图表会很有用。 谢谢。

从Chrome开发者工具导出数据

Chrome在加载网页时进行networking分析 我想将这些数据导出到Microsoft Excel,以便在不同的时间加载类似的数据。 一次加载一个页面并没有真正的告诉我,特别是如果我想比较页面。 是否有可能通过工具或铬扩展做到这一点?

TeamViewer如此之快?

对不起长度,这是有必要的。 介绍 我正在为Windows Vista / 7在C#4.0中开发一个远程桌面软件(只是为了好玩)。 我已经经历了一些基本的障碍:我有一个强大的UDP消息传递系统,相对干净的程序devise,我有一个镜像驱动程序(DemoForge的免费DFMirage镜像驱动程序)启动并运行,我已经实现了所有NAT穿越除了对称NAT之外的NATtypes(存在于企业防火墙情况下)。 关于屏幕传输/共享,感谢镜像驱动程序,我自动通知更改的屏幕区域,我可以简单地将镜像驱动程序的不断变化的屏幕位图编组到我自己的位图。 然后我把这个屏幕区域压缩成PNG格式,然后把它从服务器发送到我的客户端。 事情看起来不错,但速度不够快。 它和VNC一样慢(顺便说一句,我没有使用VNC协议,只是一个自定义的业余协议)。 从最慢的远程桌面软件到最快的列表,通常从类似VNC的实现开始,然后爬上Microsoft Windows远程桌面…然后… TeamViewer。 不太确定CrossLoop,LogMeIn – 我没有使用它们,但TeamViewer 非常快速。 这是相当活的。 我在命令提示符下运行了一个tree命令,并且延迟了20毫秒。 我可以在网上浏览网页,比我的笔记本电脑慢几毫秒。 在Visual Studio中垂直滚动代码有50 ms的延迟时间。 考虑一下TeamViewer的屏幕传输解决scheme必须具备的强大function。 VNC使用基于轮询的钩子检测屏幕变化,并在最差的情况下使用powershell屏幕捕获/比较。 在最好的情况下,他们使用像DFMirage这样的镜像驱动程序。 我在这个级别。 他们使用一种叫做RFB协议的东西。 微软Windows远程桌面显然比VNC高一步。 我从StackOverflow的某个地方听说,Windows远程桌面不会发送屏幕位图,而是实际的绘图命令。 这是相当出色的,因为它可以发送简单的文本(在这个坐标上绘制这个矩形,并用这个渐变来着色)! 远程桌面确实非常快 – 这是在家工作的标准方式。 它使用一种称为RDP协议的东西。 现在,TeamViewer对我来说是一个完整的秘密。 显然,他们发布了版本2的源代码(截至2012年2月,TeamViewer是第7版)。 人们已经读过它,并说版本2是无用的 – 这只是对自动穿越NAT的VNC的一些改进。 但版本7 …现在是很快的。 我的意思是,它实际上比Windows远程桌面更快。 我使用TeamViewer对DirectX 3D游戏进行了stream式处理(每秒1帧,但Windows远程桌面甚至不允许DirectX运行)。 顺便说一下,TeamViewer在没有镜像驱动程序的情况下执行所有操作。 有一个选项来安装一个,它只是快一点。 问题 我的问题是,TeamViewer如此之快? 这一定是不可能的。 如果你在24位深度上得到1920×1080的分辨率(16位深度会显着难看),那么仍然是6220800字节。 即使使用libjpeg-turbo(大公司使用的最快速的JPG压缩库之一),将其压缩到30KB(让我们非常慷慨),也需要一段时间才能通过TeamViewer的服务器(TeamViewer绕过企业对称NAT,只需通过代理他们的服务器)。 而libjpeg-turbo压缩需要时间来压缩。 高质量的JPG压缩需要175毫秒的完整1920 […]

模拟缓慢的互联网连接

我知道这是一个奇怪的问题。 由于我通常基于“假设”开发应用程序,所有用户的互联网连接速度都很慢。 但是,有没有人认为有一种方法来编程模拟一个慢的互联网连接,所以我可以“看到”应用程序如何在各种“连接速度”下执行? 我不担心使用哪种语言。 而且我不在寻找代码示例或任何东西,只是对它背后的逻辑感兴趣。

bsxfun在matrix乘法中的实现

一如既往地试图从你那里学到更多东西,我希望能够通过下面的代码获得一些帮助。 我需要完成以下内容: 1)我有一个vector: x = [1 2 3 4 5 6 7 8 9 10 11 12] 2)和一个matrix: A =[11 14 1 5 8 18 10 8 19 13 20 16] 我需要能够将x的every值与A each值相乘,这意味着: new_matrix = [1* A 2* A 3* A … 12* A] 这会给我这个size (12*mxn) new_matrix ,假设A (mxn) 。 而在这种情况下(12*4×3) 我怎样才能做到这一点,使用matlab的bsxfun ? 而且,这个方法会比for-loop更快吗? 关于我的for-loop […]

计时码在matlab中

我用4种不同的方式写下了一个函数,我想要这个函数。 到现在我一直在做这件事情: tic %//function 1 toc tic %//function 2 toc tic %//function 3 toc tic %//function 4 toc 但是现在我想计算每个函数的定时数据(比如说100次),然后计算每个函数花费的平均时间。 我怎么能这样做? 另外,我在某处读到,打印的时间是经过的“挂钟”时间 – 所以在MATLAB程序运行时,它会受到我的电脑正在做的任何事情的影响。 那么有没有更好的方法呢? 我听说有一个MATLAB内置的代码分析器与命令“configuration文件”。 请任何人都可以告诉我可以使用它的方式吗? 我也咨询了这些网站: MATLAB和Profiler中的 时序代码, 以查找代码瓶颈 。 请build议如何做多次循环。 提前致谢。 编辑:2013年9月23日:按照大家的build议,我做到了这一点:我的function定义为一,二,三和四。 function [] = one(x) I = imread('coins.png'); I = double(I); I = imresize(I,[xx]); sig=.8; % scale parameter in Gaussian kernel G=fspecial('gaussian',15,sig); […]

在执行uop数量不是处理器宽度倍数的循环时性能是否降低?

我想知道在近期的x86处理器上,各种尺寸的循环如何作为uops数量的函数。 彼得·科尔德斯(Peter Cordes)的一句话引起了另外一个问题 : 我还发现,如果循环不是4个uops的倍数,那么循环缓冲区中的uop带宽不是每个周期4个常量。 (即它是abc,abc,…;不是abca,bcab,…)。 Agner Fog的微文档不幸的是在循环缓冲区的限制上并不清楚。 这个问题是关于循环是否需要N个uop的倍数来执行最大uop吞吐量,其中N是处理器的宽度。 (即4个用于最近的英特尔处理器)。 谈论“宽度”并计数微波时,有许多复杂的因素,但我最想忽略这些因素。 特别是,假设没有微观或macros观融合。 彼得给出了下面的例子,在它的内部有7个uops循环: 一个7-uop循环将发出4 | 3 | 4 | 3 |组…我还没有testing过较大的循环(不适合在循环缓冲区中),以查看下一个指令是否可能迭代在同一组中发出,但是我认为不是。 更一般地说,声明是每个迭代循环的x uops在它的体内至less需要ceil(x / 4)迭代,而不是简单的x / 4 。 这对一些或所有最近的x86兼容处理器是否正确?

INC指令与ADD 1:有关系吗?

大多数情况下,我现在远离INC和DEC,因为他们做了部分条件代码更新,这可能会导致pipe道中有趣的停顿,而ADD / SUB则不会。 所以在哪里不重要(大多数地方),我使用ADD / SUB来避免摊位。 我只在保持代码小的时候才使用INC / DEC,例如,在一个或两个指令的大小足够大的caching行中进行匹配。 这可能是毫无意义的纳米[字面上!] – 优化,但我在我的编码习惯相当老派。 作者:@Ira Baxter 上面的片段来自INC和DEC指令为什么不影响进位标志? 而且我想问一下,为什么会导致pipe道堵塞,而添加不了? 毕竟,add和inc都会更新标志寄存器。 唯一的区别是inc不更新CF. 但为什么这很重要?

比较BSXFUN和REPMAT

在比较bsxfun和repmat的performance之前,很less有人问到这个问题。 其中之一是: Matlab – bsxfun no longer faster than repmat? 。 这个试图调查repmat和bsxfun之间的性能比较,特别是从input数组本身沿着input数组的平均值减去input数组的平均值,并且因此将仅探索@minus部分与其等效的repmat 。 另一个是: In Matlab, when is it optimal to use bsxfun? 。 那个人试图做同样的操作减去平均沿列,并没有扩大到其他内置操作。 在这篇文章中,我试图调查bsxfun和repmat之间的性能数字,以覆盖所有的bsxfun内置bsxfun ,从而为这两个提供了更好的vector化解决scheme。 具体来说,我的这个职位的问题是: bsxfun的各种内置操作bsxfun执行对应的repmat ? bsxfun支持@plus , @minus , @times等浮点操作, @minus像@plus , @minus @times等关系和逻辑操作。那么,是否有特定的内置bsxfun可以使bsxfun加速比使用他们的repmat等值? 在她的blog post Loren bsxfun用@() A – repmat(mean(A),size(A,1),1)和@() bsxfun(@minus,A,mean(A))对bsxfun进行了基准testing。 如果我需要覆盖所有内置的基准testing,我可以使用一些其他的比较模型来处理浮点,关系和逻辑运算吗?