gpt4 book ai didi

javascript - 服务器无法处理循环

转载 作者:行者123 更新时间:2023-12-03 03:45:00 25 4
gpt4 key购买 nike

好吧,我使用以下代码生成 1000 万个不同的行,

var serverSeed = 'hidden';
var games = 1e7;
var gamesLeft = games;

generateGames();

function generateGames(){
if(games > 0){
for(var x = 0; x < 1000; x++){
serverSeed = genGameHash(serverSeed);
query('INSERT INTO `hash` SET `hash` = ' + pool.escape(serverSeed) + ', `game` = ' + pool.escape(games-x));
}

games = games - 1000;

console.log("Progress: " + (100 - games/gamesLeft*100).toFixed(2) + "%");

generateGames();
}else{
console.log('Done generating ' + gamesLeft + ' games.');
}
}

虽然从 0.00 到大约 20.00% 都很好,但是服务器返回给我一个错误,基本上告诉我内存不足。

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory Aborted (core dumped)

我正在生成一个哈希链,因此我需要连续生成它们,我该怎么做才能仍然能够生成哈希链?

查询

function query(sql, callback) {
if (typeof callback === 'undefined'){
callback = function() {};
}

pool.getConnection(function(err, connection) {
if(err) return callback(err);
connection.query(sql, function(err, rows) {
if(err) return callback(err);
connection.release();
return callback(null, rows);
});
});
}

最佳答案

您可能想要进行适当的内存分配并减慢迭代速度:

function generateGames(games){
if(!games) return console.log("done.");
var serverSeed = genGameHash(serverSeed);
query('INSERT INTO `hash` SET `hash` = ' + pool.escape(serverSeed) + ', `game` = ' + pool.escape(games),function(){
generateGames(games - 1);
});
}

generateGames(1e7);

这会创建一个插入队列,您可以添加任意数量:

generateGames(1e7/3);
generateGames(1e7/3);
generateGames(1e7/3);

关于javascript - 服务器无法处理循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45437130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com