Javascript 在chrome这样的网络浏览器中,程序的内存和速度是如何关联的?

Javascript 在chrome这样的网络浏览器中,程序的内存和速度是如何关联的?,javascript,algorithm,math,google-chrome,combinatorics,Javascript,Algorithm,Math,Google Chrome,Combinatorics,最近,我一直在研究R(5,5)的拉姆齐定理。您可以在此处看到以前尝试的一些示例: 本质:在一个图/它的补码中找到所有的k4,然后连接另一个点,这样就不会形成k5(我知道有一种选择,从数学上讲,你不可能超过14。但是有一些方法可以绕过这个选择,我让它在不阻塞浏览器的情况下运行到22-23) 有了新的想法,我开始在批与批之间存储信息。当前构造图遍历并在每次看到图时搜索图中的所有k4。我认为这太过分了,因为k4在上一张图中保持不变,只有新的k4可以显示在添加新点产生的连接中。如果每次查找之前的k4时都

最近,我一直在研究R(5,5)的拉姆齐定理。您可以在此处看到以前尝试的一些示例: 本质:在一个图/它的补码中找到所有的k4,然后连接另一个点,这样就不会形成k5(我知道有一种选择,从数学上讲,你不可能超过14。但是有一些方法可以绕过这个选择,我让它在不阻塞浏览器的情况下运行到22-23)

有了新的想法,我开始在批与批之间存储信息。当前构造图遍历并在每次看到图时搜索图中的所有k4。我认为这太过分了,因为k4在上一张图中保持不变,只有新的k4可以显示在添加新点产生的连接中。如果每次查找之前的k4时都存储它们,然后只在新创建的边界中搜索,则将需要进行的比较次数从(n4)减少到(n-13)

昨晚我尝试了一下实现它,并使它在没有明显错误的情况下正常工作。虽然我将在这之后返回,并对任何问题进行梳理,但新方法会使程序慢得多。在此之前,该程序进行所有比较所需的时间仅增加了一倍。现在,它在看起来是阶乘的时间内上升。我回顾了一遍,试图找出任何明显的错误,但我想知道,对记忆的新依赖是否会导致整个速度的减慢

因此,在这篇长篇大论中,我的主要问题是,在chrome这样的网络浏览器中,程序的内存和速度是如何关联的?我把一堆小图形作为JSON对象放在周围,这会减慢程序的速度吗?从理论上讲,我在速度方面占用了多少内存,这不重要吗?我在哪里可以了解更多关于两者之间的联系?有没有一本书能更好地解释这类事情

谢谢你的建议或回答。很抱歉这么长时间:我仍然深陷其中,很难马上解释

编辑: 下面是两个显示每个算法的网页, 存储以前的发现:

不存储以前的查找:


他们都是最好的铬观看。这是我一直使用的浏览器,如果用ctrl-shift I打开开发面板并键入“times”,您可以看到迄今为止所有时间的集合

程序的内存和速度不是紧密相关的

简单的例子:

  • 几乎没有ram但有很多内存的计算机 硬盘空间的数量将减少 对硬盘进行虚拟化改造 记忆。这会减慢速度 因为硬盘驱动器非常重要 比ram慢
  • 内置的计算机 在所有的ram中,最重要的是 同样的事情。它将不必进入硬盘,因此将保持更快的速度
  • 缓存通常会占用大量内存 内存它也显著增加 应用程序的速度。这是 memcache是如何工作的
  • 一个算法可能需要很长时间,但是 使用很少的内存。想一想 尝试计算PI的程序。 它永远不会结束,但需要非常多的时间 小公羊
一般来说,您使用的ram越少(减去缓存),速度就越好,因为您遇到其他进程施加的约束的可能性就越小

如果您有一个程序,它需要相当长的时间来计算要再次引用的项目。将它们缓存在内存中是有意义的,这样就不需要重新计算它们


您可以通过向缓存项添加超时来混合这两者。每次向缓存中添加另一项时,都会检查其中的项,并删除一段时间内未访问的项。“一段时间”取决于你的需要。

+1我认为这是一个很好的问题。你应该检查3张赞成票,但没有答案?拜托,你们这些五万多天才在哪里?你们创造了很多小东西,并且让它们长时间存在。这将是对垃圾收集器的一个有趣的折磨测试。如果他们让浏览器太慢,我会感到惊讶,但这不是不可能的。从概念上讲,这对一般的程序来说是有意义的。但是,由于这些都是在浏览器中运行的,我认为这些图形不会存储在除浏览器之外的任何计算机中。我绝对不认为他们正在接近硬盘驱动器。对于网页来说,这似乎是一个很大的禁忌。虽然有用,但我认为这并不能回答我的问题。事实上,是的,如果内存不足,它们可以很容易地进入硬盘。这就是虚拟内存的工作原理:将使用硬盘的计算机想象成“伪RAM”。请求的RAM是用于网页还是用于成熟的应用程序并不重要。@andyvn22-知道这一点真是太好了!因此,图形可能会在一段时间后存储在硬盘中,因为它们会堆积起来并耗尽ram?这并不是真正有用的信息。为了进行交换,您必须先做一些内存密集型的工作,或者没有太多的RAM。我非常怀疑。你的内存数量无关紧要。重要的是应用程序使用的RAM数量与应用程序可用的RAM数量。浏览器因占用大量内存而臭名昭著。问题中引用的网页将占用大量内存。您可能正在运行其他也会占用RAM的程序。与该网站上的技术人员不同,绝大多数人并不经常升级电脑。让你的程序更有效率没有错。如果每个程序都是,我们就不需要超级计算机来运行文字处理器了。