- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在编写高性能 JavaScript 代码时,Chrome 等提供的标准分析工具并不总是足够的。它们似乎只提供功能级别的粒度,向下钻取并找到我需要的信息可能非常耗时。
在 .NET 中,StopWatch
类提供了我所需要的:任意代码片段的亚微秒分辨率计时。
对于 JavaScript performance.now()
曾经是衡量性能的一个很好的方法,但是为了应对 Spectre 和 Meltdown,所有主流浏览器都将分辨率降低到甚至不到一毫秒。
在 performance.now() 上引用 MDN :
The timestamp is not actually high-resolution. To mitigate security threats such as Spectre, browsers currently round the result to varying degrees. (Firefox started rounding to 2 milliseconds in Firefox 59.) Some browsers may also slightly randomize the timestamp. The precision may improve again in future releases; browser developers are still investigating these timing attacks and how best to mitigate them.
我需要微秒级精度计时。在撰写本文时,浏览器似乎没有提供任何选项或标志来禁用这些安全措施。也许我在谷歌上搜索了错误的术语,但我遇到的唯一文章是对安全问题的解释以及这些缓解措施如何解决这些问题。
我对这里的安全方面不感兴趣 - 我正在我自己的机器上对性能关键的 JavaScript 代码段进行基准测试,我唯一关心的是我以尽可能少的努力获得尽可能准确的测量结果可能。
我想到了两个选项:
例如,我必须将旧版 FireFox 用于基准测试,将新版 Chrome 用于浏览。这是不切实际的,因为我需要在所有浏览器中进行测试(最好在所有浏览器中进行基准测试)。此外,新的优化并未在旧浏览器中实现,因此基准测试可能毫无用处。
我看过很多关于此的较旧的博客文章,但它们似乎都没有达到我需要的高精度(毕竟,曾经有 performance.now()
用于此)。
如何在不求助于旧版浏览器、虚拟机等的情况下获得有效的 pre-Spectre performance.now()
?
JavaScript 中是否有任何编码技术或库可以达到微秒精度?
上述 3 种浏览器是否有禁用这些安全措施的选项或标志?
我最终正在寻找一种方法来准确衡量不同代码段相互比较的相对性能 - 因此,如果有一种解决方案可以给我滴答声,而不是微秒,那也是可以接受的,只要它准确并且适用于各种浏览器。
最佳答案
Firefox 确实有一个名为 privacy.reduceTimerPrecision
的配置设置,可以禁用 Spectre 缓解措施。您可以使用 Firefox 的 about:config 页面将其切换为 false(在地址栏中键入 about:config
)。
通过 MDN 上的提示解决了这个问题.
关于javascript - 自 Spectre 和 Meltdown 以来如何在 JavaScript 中获得微秒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50117537/
最近发现的硬件漏洞 Meltdown 和 Spectre 之间的主要区别是什么?我知道它们都依赖于投机执行,但它们之间有何不同? 最佳答案 What are the key differences b
我将我的工作文件夹设置为 RAM 驱动器。晚上停电时间很长,UPS 用完了,我的机器坏了。值得庆幸的是,我在回家之前搁置了我的更改,并且该搁置集在团队资源管理器中可见。变更集包括项目文件和一些尚未添加
我试图利用 上的崩溃安全漏洞Ubuntu 16.04 ,带有未修补的 内核 4.8.0-36 在 英特尔酷睿-i5 4300M 中央处理器。 首先,我使用内核模块将 secret 数据存储在内核空间中
是否可以在更高版本的 CoreOS 上禁用 Spectre 和 Meltdown 补丁?在我的公司,我们正在运行一个完全内部的 Kubernetes 计算机集群,并希望恢复性能。 在普通的 linux
我从事一个大量使用 COM 的项目,而新的 Spectre/Meltdown 补丁无疑会干扰程序内的通信。 我怎么知道?我重新镜像了不存在此补丁的 Windows 机器(2017 年 5 月)。我安装
我做了一个google search对于“测试崩溃和幽灵”,发现了一个非常令人不安的看起来声名狼藉的链接集合。 我确实找到了 ubuntu page on these attacks它指的是似乎是 a
情况 在编写高性能 JavaScript 代码时,Chrome 等提供的标准分析工具并不总是足够的。它们似乎只提供功能级别的粒度,向下钻取并找到我需要的信息可能非常耗时。 在 .NET 中,StopW
所以calloc()通过向操作系统询问一些虚拟内存来工作。操作系统与 MMU 协同工作,并巧妙地以虚拟内存地址进行响应,该地址实际上映射到 copy-on-write, read-only page
我是一名优秀的程序员,十分优秀!