【问题标题】:Which JavaScript graphics library has the best performance?哪个 JavaScript 图形库性能最好?
【发布时间】:2009-03-23 23:22:10
【问题描述】:

我正在为一个 JavaScript 项目做一些研究,其中绘制简单基元(即线条)的性能是迄今为止最优先考虑的。

this question 的答案提供了一个很棒的 JS 图形库列表。虽然我意识到浏览器的选择比库的影响更大,但在选择浏览器之前,我想知道它们之间是否有任何区别。

有没有人对这些中的任何一个进行过性能比较?

【问题讨论】:

    标签: javascript graphics


    【解决方案1】:

    更新答案(2019 年):

    核心建议还是一样:为了获得最大性能,使用瘦包装器或使用原始浏览器 API,同时避免使用 DOM 或任何类似 DOM 的结构。在 2019 年,这意味着避免使用 SVG(以及基于它构建的任何库),因为在尝试快速更改 DOM 时可能会导致性能问题。

    Canvas 是高性能 Web 图形的首选解决方案,适用于 2d 和 3d (webgl) 上下文。 Flash 已死,因此不再是一种选择,但即使它不是,它的性能最终也能与原生浏览器 API 相匹敌。

    原始答案(2009 年):

    如果您不使用 3d,只需使用原始画布和 excanvas 作为资源管理器后备。您的瓶颈将是 javascript 执行速度,而不是行渲染速度。除了 IE,当场景变得过于复杂时,IE 会陷入困境,因为 VML 实际上是构建一个 dom。

    如果您真的担心性能问题,请务必使用 flash 并在 actionscript 中编写整个内容。您将获得一个数量级的更好性能,并且使用 flex sdk,您甚至不需要购买任何东西。在 flash/flex 中有几个不错的 3d 库可用。

    【讨论】:

    • 是的,这似乎是共识。关于闪存;这是我通常使用的,但在这种情况下,我特别想在 JS 中执行此操作,以便在 JS 中执行此操作(受 Chrome Experiments 启发)。
    • 嗨,来自未来。现在是 2013 年,有很多优秀的可编程图形渲染库。 Flash基本上已经死了。五年前正确但不再正确的问题/答案需要有一个“已过时”标签。
    【解决方案2】:

    Raphael JavaScript 库

    http://raphaeljs.com

    【讨论】:

      【解决方案3】:

      它们都没有很好的性能。现在是 2009 年,Web 浏览器中可编程图形渲染的状态确实令人沮丧。 25 年前,我可以在 vt125 终端上进行更快的交互。如果您正在做任何互动,请考虑使用 Flash...否则我会根据您的需要选择一些服务器端的重型解决方案

      【讨论】:

      • 我知道没有一个性能好;我正在寻找性能最差的。而且,虽然我在很多其他项目中都使用过 Flash,但我特别想在 JS 中做到这一点。
      • 是的,我明白。我做。我花了很多年做图形,我真的无法想象用纯 JS 做任何有趣的图形。也许你只是在做流程图,它不会那么糟糕:/
      • 来吧——“javascript图形”和“性能”真的不属于同一个句子
      • 除非在某个地方扔了一个“可怕的”东西(任何一个地方都可以,真的)
      【解决方案4】:

      到目前为止 - 使用 processing.js(“处理”语言的 javascript 画布实现)和/或 raphael.js(小巧方便的 VML/SVG javascript 库)。

      性能建议取决于任务:

      • 高度动态、复杂的基元(或大量基元) - 画布(像素、低级 API)

      • 基元数量较少,高度可扩展,集成在 DOM - SVG/VML(矢量,高级 API)中

      【讨论】:

        【解决方案5】:

        我知道你说浏览器的影响更大,那么为什么不坚持使用优化的 SVG 调用呢?然后,它“可以”在所有浏览器中工作,但是......

        Chrome 足够强大,可以高效地进行 3D 建模:

        http://www.chromeexperiments.com/detail/monster/

        【讨论】:

        • 我今天希望在 Chrome 和 Firefox 5 上试用 WebGL。看来是因为我的电脑还是“XP”……硬件驱动不合适。
        【解决方案6】:

        http://www.jsgl.org 怎么样?它使用 SVG/VML。

        【讨论】:

        • 要么发表评论,要么适当地详细说明,以便解释。
        【解决方案7】:

        对于基本绘图(例如线、圆和多边形),我会推荐Walter Zorn's Graphics Library。它在构建时考虑了性能,可在大量浏览器中使用。

        【讨论】:

        猜你喜欢
        • 2015-01-19
        • 2011-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多