草庐IT

回收算法

全部标签

javascript - JS 字符串/数字和垃圾回收

tl;dr下面的代码行是否创建了一个对象(如JavaScriptString对象或JavaScriptNumber对象)来组合字符串基元和数字?varscouterSays="powerlvl"+9001;完整问题我正在用JavaScript编写一个游戏引擎,并试图非常小心地处理垃圾回收。我已经通读了http://www.scirra.com/blog/76/how-to-write-low-garbage-real-time-javascript和http://buildnewgames.com/garbage-collector-friendly-code/这非常有帮助。我已经实现

javascript - 结构化克隆算法与深拷贝有何不同

有一个MDNarticle声明:ThestructuredclonealgorithmisanewalgorithmdefinedbytheHTML5specificationforserializingcomplexJavaScriptobjects.It'smorecapablethanJSON所以,我相信这意味着它比以这种方式克隆的能力更强:JSON.parse(JSON.stringify(obj))在thisthread中建议.JSON方式有很多缺点,例如不支持循环引用、丢弃JSON规范不支持的所有内容(如函数)以及将Date对象表示为字符串。然后我想到结构化克隆算法是很多库

javascript - 我可以在不使用编辑器的情况下使用 tinyMCE 清理算法吗?

我正在使用tinyMCE来编辑内容,它设置了清理规则,用于在回发数据之前清除哪些内容。但是在我的应用程序的其他区域,我需要显示相同的内容......而且我不想指望它在被放入数据库之前被正确删除的事实(它可能已经被另一个应用程序编辑过)。因此,为了保持一致性(并且不必重复工作),我有没有办法直接在javascript中使用tinyMCE清理/清理器,以便我可以清理其他内容,然后再将其放入DOM中以供查看?像这样的东西:vardata=getDataViaAjax();varcontent=tinymce.scrubber.cleanup(data);$("someElement").ap

美国NIST发布首批四种抗量子密码算法

美国国家标准与技术研究院(NIST)选择了第一批旨在抵御未来量子计算机攻击的加密算法,这些算法被设计成能够抵御未来量子计算机的攻击,这种攻击可能会破解用于保护隐私的密码安全,比如网上银行和电子邮件等软件。这四种选定的加密算法将成为NIST后量子加密标准的一部分,预计将在两年内最终确定。美国商务部长GinaM.Raimondo表示,“今天的公告是保护我们敏感数据免受未来量子计算机网络攻击的一个重要里程碑,由于NIST的专业知识和对尖端技术的承诺,我们能够采取必要的步骤来确保电子信息的安全,这样美国企业可以继续创新,同时保持其客户的信任和信心。”在此之前,NIST曾在2016年呼吁全球密码学家设计

javascript - 在 Javascript 中可视化汉诺塔算法

Latley我正在做一个学校项目,我必须提出一个算法,在我的例子中,这个算法是解决汉诺塔谜题的算法。由于我在HTML/CSS方面的知识,我认为使用这些+Javascript来可视化网页上的步骤会非常巧妙。我设置了站点以及基本的递归算法。functionmove(n,beg,aux,end){if(n==1){console.log(beg+'-->'+end+'\n');setTowers(beg,end);}else{move(n-1,beg,end,aux);move(1,beg,aux,end);move(n-1,aux,beg,end);}}页面布局(CSS代码在这里无济于事)

javascript - 适用于许多图像及其调色板的算法

对于一个项目,我正在寻找一种算法,可以将很多图像转换为可以共享相同调色板的调色板图像。短篇小说给出:图像(RGB)的列表,这些列表已经具有应使用的最终颜色。结果:图片列表(指示)调色板列表通过使用不同的调色板,可以将多个RGB图像转换为一个指示图像。我想使用最少数量的图像和最少数量的调色板。局限性:最多有n个调色板每个调色板最多有m种颜色结果中最多可以生成u张图像我的问题是:我不知道如何构建算法,因此它可以决定是否对先前的问题做出任何先前的决定。(请参见下文)我不知道如何解决调色板颜色和图像数据的重新排列,因为重新排列一个图像数据可能会导致跟进重新排列的问题,这可能会导致无休止的重新排

javascript - node.js v8 垃圾回收似乎没有触发

我很困惑,因为我的应用程序正在泄漏内存。它是一个每分钟处理数十万个数据包的tcp服务器。我检查了代码,对其进行了改进并分析了内存。一切似乎都很好,在低流量的本地测试实际上表明gc正确释放了内存。但是当在实时流量大的服务器上时,它不会。所以我尝试使用expose-gc选项并在每次断开连接时添加强制gc,现在我发现内存不再泄漏或者是否每次都泄漏?所以,我的结论是gc没有激活。我的服务器有3GB的内存,应用程序在短短几个小时内就吃掉了其中的2.8GB。现在使用强制gc,应用程序不再泄漏。它维持着大约200MB的内存。那么,我的问题是,为什么gc没有被触发? 最佳答

javascript - 为什么这个洗牌算法没有偏差

我和我的同事正在争论为什么这个listofJStips&tricks中给出的洗牌算法不会像JeffAtwooddescribes那样产生有偏见的结果对于天真的洗牌。tips中的arrayshuffle代码为:list.sort(function()Math.random()-0.5);Jeff的简单洗牌代码是:for(inti=0;i我写了这个JS来测试随机播放:varlist=[1,2,3];varresult={123:0,132:0,321:0,213:0,231:0,312:0};functionshuffle(){returnMath.random()-0.5;}for(va

javascript - 一种立方体曲面星形寻路启发式算法

我正在构建一个snakegame在立方体的表面上播放。目前它使用Dijkstra算法进行寻路。尽管对集合和优先级队列数据结构进行了优化,但它仍然有点太慢了。当蛇吃掉食物并开始寻找新食物时,您会注意到延迟。我试图让它改用A*,但找不到好的启发式算法。在具有4个运动方向的平面网格上,我会使用曼哈顿距离。我试过使用3DManhattan距离abs(dx)+abs(dy)+abs(dz)但没有成功,原因很简单:对于蛇来说,游戏世界真的是6grids(correspondingtothefacesofthecube)具有不寻常的环绕属性。在代码中,每个方block都存储在一个grid[15][1

javascript - redux 垃圾回收是如何工作的?

redux垃圾回收究竟是如何工作的。我们都知道redux提倡不变性。那么陈旧的状态实例会发生什么?例如在我的reducer中,如果我有这样的情况:...case'MY_ACTION':returnstate.set('name',action.name)...现在,如果我触发MY_ACTION操作100次,代码将创建一个新对象100次。我的问题是以前不再使用的状态对象会发生什么。它们会留给javascript/浏览器垃圾收集器来决定如何处理吗?如果是,这不是一个性能问题,即这么多陈旧的“状态”对象不会增加javascript垃圾收集器的负载,从而降低代码的性能吗?