大家好!我花了 2.5 年的时间解决了 js-framework-benchmark 存储库中的速度问题,我并不后悔,因为我最近注意到了一个超级有趣的观察。
基本上,所有框架和库开发人员在 Web 开发的早期阶段都面临着速度问题。这是最重要的,因为人们在 UI 上看到数据变化的速度越快,他们花费的时间就越少。想象一下,如果网站运行速度提高 10%,那么数十亿人就可以挽救很多年的生命。
必须做一些事情,因此,也许出于其他原因,创建了许多具有现代框架和库基准的存储库。 js-framework-benchmark 就是此类存储库之一。它包含几乎所有用于创建 UI 的流行框架和库。
主要任务是绘制一个依赖于数据的表格。这看起来像是一个简单的任务,但事实上,它非常非常具有指示性,因为它让人们注意到主要的事情:应用程序可以看起来像任何东西,但是组件,它们在 DOM 中的顺序,与浏览器一起工作,并且其他事情 - 模仿常规网站的行为。因为表格中的一行、页面上的标题 - 都是一般性的,只是一般性的一个组成部分。
由于应用程序正常工作,以代码和时间作为依赖项(我们不考虑显示、颜色,因为它可以在线路上表示为 0 和 1,因此只有 2 个这样的依赖项),那么至少有一个组件,至少一百万个不同的相互交织的组件 - 没有特殊的含义,因为一切都依赖于一个引擎。因此,简单在这里更合适,因为它很清晰。
所以,我们有一个任务,但我们需要以某种方式解决它。编程是好的,因为我们可以用一百万种不同的方式解决一个数学问题,但我们来到主要的事情,基本的理想算法对每个人来说都是相同的。这是一个定理,实现什么以及如何实现取决于品味和方便性的需要。
我们现在看一下界面,它是什么样的:
测试应用程序:
部分结果:
https://krausest.github.io/js-framework-benchmark/2024/table_chrome_130.0.6723.58.html
我们有状态更改时可能发生的表中不同关键操作的结果。我们可以测量工作速度并比较哪些代码运行得更快,哪些代码运行得更慢。这非常方便,因为它为所有框架和库创建了一个公平的竞争环境。不过如果只是速度问题就好了,但是结构本身的标准也定下来了,因为它必须是正确的。组件方法、关键实现、状态和其他术语都包含在其中。如果没有这样的标准,这根本就不是一个可行的话题。
因此,该标准长期以来都是由框架和库的创建者制定的 - 对于那些这样做的人来说,这是显而易见且可以理解的。问题是,现在我们需要以某种方式适应所有这些以实现快速工作,以便快速渲染 UI。
所以,聚集所有“大型”和不太大型框架和库的创建者,以及也想尝试一下的爱好者,这是一个很酷的想法。所有这些都很重要,因为就像在体育运动中一样,我们有一个社区,并且有一个“领导者”委员会,其中发布了不同的问题解决方案。就编程而言,这不是一个很好的比较,因为它只是数学,但这个想法本身很有趣,因为它促使人们做得漂亮、快速,最重要的是,它是正确的。
嗯,这样的社区近年来产生了许多很酷的解决方案,今天和未来的所有创作者都可以使用这些解决方案。你不必重新发明轮子,因为基本算法已经写好了。这种理解可以节省很多年。
许多开发人员已经编写了实现理想代码的示例,基于此非常容易,所以最好的事情是,这种情况以前没有发生过,而且它发生了,除其他外,因为这个存储库。不管别人怎么说,都很酷。
如果我们按组件考虑理想算法,我们可以突出显示 - 关键实现的算法(使用最长递增子序列或其其他变体)、模板克隆、直接反应性(textContent、addEventListener、classList.add),或今天使用无用的 VDOM,尽管就模板而言它是必要的,以及处理组件之间的状态和导入,最后两个是值得商榷的。但这就是基础,这里不能再发明别的了。
本文不会包含任何此类代码,因为基准存储库中有很多这样的代码。
无论如何,我希望人们很快就会明白,今天我们已经有了显示数据的理想代码,值得考虑它并基于它做一些新的事情,而不是重新发明轮子。如今,许多库和框架可以更快、更高效地工作,只是遗留代码不允许这样做,因为可能需要做很多工作,而且事实是,通常不需要重做所有事情就可以实现。
以上是js-framework-benchmark - 速度数学问题的理想解决方案的变体或为什么它是标准的的详细内容。更多信息请关注PHP中文网其他相关文章!

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

JavaScript在现实世界中的应用包括服务器端编程、移动应用开发和物联网控制:1.通过Node.js实现服务器端编程,适用于高并发请求处理。2.通过ReactNative进行移动应用开发,支持跨平台部署。3.通过Johnny-Five库用于物联网设备控制,适用于硬件交互。

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

记事本++7.3.1
好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具