草庐IT

Performance

全部标签

javascript - 消防站 : arrays vs sub collection of documents performance

我想问一下firestore是否有最佳实践,何时开发聊天应用程序,以及为聊天室存储消息的最佳实践是什么。这里假设每个聊天室都有自己的文档。我开始使用数组来存储来自用户的消息。这种方法的问题是每次向聊天室提交新消息时都无法添加、插入(附加)新条目。必须保存数组的新副本并附加新消息。这看起来会非常糟糕,除非聊天记录被拆分成子数组等。在官方文档中,他们提出了一种结构,其中应将特定聊天室的消息作为单独的文档存储在该聊天室的子集合中。我想知道这种方法是否是最好的,有什么缺点,或者是否有另一种首选方法来做到这一点。 最佳答案 我通常会采用“每个

javascript - FullCalendar - 我应该期望什么级别的事件呈现性能?

我正在使用$('#CalendarPlugin').fullCalendar('renderEvent',{});在FullCalendar中渲染100个事件,在一个循环中被调用100次。我在计算机上看到的浏览器性能(Core26600@2.4GHz和4GBRAM)Chrome:3秒Firefox:6秒IE9:6秒这是预期的性能水平吗?有没有更快的方法来加载和呈现事件?将它们添加到FullCalendar后,可以在月份之间移动并更快地重新呈现它。只是使用renderEvent初始加载它们很慢。 最佳答案 开发人员正致力于1.4.4版

javascript - JavaScript 中的高效粒子系统? (WebGL)

我正在尝试编写一个程序,对粒子进行一些基本的重力物理模拟。我最初使用标准Javascript图形(具有2d上下文)编写程序,并且我可以通过这种方式获得大约25fpsw/10000粒子。我在WebGL中重写了该工具,因为我假设我可以通过这种方式获得更好的结果。我还使用glMatrix库进行矢量数学运算。但是,通过此实现,我只能获得10000个粒子的大约15fps。我目前是EECS本科生,我有相当多的编程经验,但从未接触过图形,而且我对如何优化Javascript代码一无所知。关于WebGL和Javascript的工作原理,我有很多不明白的地方。使用这些技术时哪些关键组件会影响性能?是否有

javascript - 谁能解释一下这个循环是如何达到如此高的基准的?

http://jsperf.com/loops/67如果你看,下面的循环管理着一些疯狂的基准测试:vari=0;varv;for(i,v;v=arr[i++];){v;}它在FF中得分约为7亿操作/秒,在Chrome中得分约为2000万,在IE10中得分约为5000万。下一个最快的循环在FF中管理大约100k,在IE10中管理大约6k,在Chrome中管理大约2k。为什么这么快?我可以看到其他循环之间的明显差异以及一个比另一个更快,但我想不出任何可以解释这个循环绝对令人兴奋的性能差异的东西,7亿到100k是一个疯狂的差距。回答后编辑:根据@MichaelGary的回答,我返回并编辑了设

javascript - 是否值得在 Javascript 中创建一个 LinkedList

我目前正在开展一个项目,该项目要求我遍历值列表并在列表中的每个值之间添加一个新值。这将在每次迭代中发生,因此列表将呈指数增长。我决定将列表实现为链接列表是个好主意。现在,JS没有默认的链表数据结构,我创建一个也没问题。但我的问题是,从头开始创建一个简单的链表是否值得,或者只创建一个数组并使用splice()插入每个元素是否更好?事实上,它会不会因为开销而降低效率? 最佳答案 使用链表,事实上,由于规范的复杂性和良好的JITting,大多数在用户javascript中做得很好的自定义实现将击败内置实现。例如参见https://gith

javascript - Javascript 是否在加载时被解析/解释? (IE)

例如,我知道当Chrome下载Javascript文件时,它会被解释和JIT。我的问题是,当IE6、7、8首先下载一个Javascript文件时,整个文件是否被解析和解释?我的理解是只有顶级函数签名和在全局范围内执行的任何内容在加载时被解析。然后函数体和其余部分在执行时被解析。如果它们在加载时完全解析,您认为将函数体推迟到以后下载和解析会节省多少时间? 最佳答案 它们在加载时被完全解析。(当然,IE必须解析脚本才能知道每个函数体在哪里结束。)在开源实现中,每个函数都同时编译为字节码甚至机器码,我想IE的工作方式相同.如果您的页面实际

javascript - 如何在 Angular 中测试渲染速度

我们正在构建一个Angular应用程序,我们正在尝试弄清楚如何获得一些关于呈现各种页面所需时间的基准。我读过关于performance.timinghere的内容,但这似乎只对非单页应用程序有用,因为当我导航到我们应用程序中的新View时,计时数字不会改变。理想情况下,我们能够插入一些代码来获取各种View的渲染时间,并将其发布到我们的大查询服务中。关于如何在Angular应用中获取View的计时信息有什么想法吗?编辑:更具体地说,您转到了一个加载大型ng-repeat列表的路由(这对于性能来说不是最优的),并且窗口在实际呈现列表中的项目之前有很长的延迟。我们想看看从大空白View到呈

javascript - D3 map SVG 性能

过去几天我一直在努力优化D3map上的性能,尤其是在移动设备上。我正在使用SVG变换进行缩放和平移,但进行了以下观察:矫枉过正来自用于伪造国家之间间距的路径笔划。我上传了一对示例map以供比较:http://www.nicksotiriadis.gr/d3/d3-map-1.htmlhttp://www.nicksotiriadis.gr/d3/d3-map-2.html两张map之间的唯一区别是沿乡村道路的笔划路径,性能差异在桌面设备上什至很明显-但在移动设备上更明显。删除路径笔划使移动性能变得轻而易举..我尝试了各种svg笔画形状渲染选项,但没有取得显着效果。现在进入问题。有什么方

javascript - 针对不同浏览器的 Javascript 代码的持续集成/测试

我正在用Javascript编写一组要在浏览器中执行的函数(没有服务器端Javascript)。如何在不同的浏览器中对它们再次运行单元和性能测试,并跟踪每个构建的结果?测试应该在浏览器中执行测试结果应作为独立的文本或html文件生成目标浏览器是InternetExplorer7和8、最新的Firefox、最新的Chrome、最新的Safari如果需要,我可以自由设置专用的CI服务器和虚拟机 最佳答案 我一直在使用Jasmine框架进行测试和JSTestDriver。作为评估的一部分,我还为CI设置了Hudson和TeamCity,但

javascript - 使用 JS Date 对象以毫秒为单位获取当前时间的最快最轻的方法

使用Date对象获取当前时间(以毫秒为单位)有多种不同的方法:(newDate()).getTime();+newDate();Date.now();假设您不需要创建对象,只需要一个以毫秒为单位的当前时间,哪一个最有效?在性能方面。编辑:我知道大多数开发者不会关心这个,但当你在低技术含量的嵌入式环境中工作或者只是为了扼杀好奇心时,这可能很重要。 最佳答案 Date.now()获胜。参见jsperf.comtest但正如上面的评论所述,与您将要执行的任何其他操作相比,CPU成本可能没有什么意义。@techfoobar提到分配Date对