小编ovi*_*ovi的帖子

反应通用redux-saga内存泄漏

我正在研究一个使用redux和redux-saga的React同构应用程序.我的问题是,运行应用程序的节点进程在处理请求时会占用越来越多的内存,直到它最终耗尽内存.

我对应用程序进行了分析,node --inspect并注意到saga库一直(array)在内存中创建类型引用,即使在垃圾回收运行之后也永远无法清除.

要测试该问题,请运行此项目并使用chrome-devtools对其进行概要分析:https: //github.com/MartinCerny-awin/isomorphic-react-redux-saga-ssr

(不是我的项目,但似乎行为相同)

堆快照 您可以在堆diff中看到这些对象: updateState in system / Context @1770579 context in cancel()

我已经尝试将redux存储和saga中间件绑定到express response,认为它是一个请求命名空间问题,但这并没有解决它.

reactjs redux server-side-rendering redux-saga

6
推荐指数
1
解决办法
1047
查看次数

使用`new Function()`进行Javascript优化

在阅读文档时,我发现了一个简单的优化,可以极大地提高javascript的性能.

原始代码:

function parseRow(columns, parser) {
  var row = {};
  for (var i = 0; i < columns.length; i++) {
    row[columns[i].name] = parser.readColumnValue();
  }
}
Run Code Online (Sandbox Code Playgroud)

优化代码:

var code = 'return {\n';
columns.forEach(function(column) {
  code += '"' + column.name + '":' + 'parser.readColumnValue(),\n';
});
code += '};\n';

var parseRow = new Function('columns', 'parser', code);
Run Code Online (Sandbox Code Playgroud)

在这里找到:https ://github.com/felixge/faster-than-c
为什么它运行速度提高20%?
我相信它删除了for声明,但是没有forEach相同的计算成本?

javascript optimization eval

5
推荐指数
1
解决办法
289
查看次数

javascript concat 与 Push 基准测试

jsperf 有这个测试: http ://jsperf.com/javascript-array-concat-vs-push

它表明 concat 更快,但是如果您在初始数组中获得该结果,而不使用第三个变量,那么 concat 会慢得多:

for (i = 10000; i > 0; i--) {
   arr1 = arr1.concat(arr2);
}
Run Code Online (Sandbox Code Playgroud)

即使您使用本地变量,但具有相同的名称,结果也是相同的:

for (i = 10000; i > 0; i--) {
   var arr1 = arr1.concat(arr2);
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?

javascript performance

3
推荐指数
1
解决办法
1万
查看次数