提高node.js中嵌套for循环的性能

我在node.js中开发了一个web服务器,并在这个web服务器上托pipe了一个网页(见图片)。 networking服务器被embedded到树莓派中,我使用了一个带D / A转换器的HAT,以便为外部电路产生电压。

网页部分

如果用户想要使用DAC的一个通道或两个通道,可以select网页。 同样,从0.0到5.0 V(增量)或5.0 V到0.0 V(递减)的斜坡生成参数。 这些设置以stringforms存储在使用socket.io传递给Web服务器的向量中。

对于select两个通道的具体情况,程序执行如下所示的嵌套循环。 哪里:

//i= Start Value (DAC0); val_max=Final value (DAC0); forSign="<=" or ">=" ; //j= Start Value (DAC1); val_max=Final value (DAC1); //incr = i='i+step' or i='i-step' --> step= Step Value (DAC0) //incr1 = i='i+step' or i='i-step' --> step= Step Value (DAC1) for(i; eval(i+forSign+val_max); i=eval(incr)){ for(j; eval(j+forSign+val_max1); j=eval(incr1)){ execSync(com_dac.replace(/dac0/g,j).replace(/dac1/g,i)); spawnSync("sudo",['./ads1256_test', 'adc.txt']); ADC_read = fs.readFileSync("adc.txt").toString() } } 

但是,for循环的性能并不是最好的。 有时会执行,但有时不会。 有任何build议,以改善传递给循环的参数? 考虑到ij是值,而stepval_max(1)forSign是stringvariables。 我将不胜感激任何反馈:)

有没有什么特别的原因你使用eval()? 除非使用它的背后有一个非常有效的理由,否则应该避免。

首先,如果您使用eval()作为算术expression式,JavaScript会自动执行此操作。 不用使用eval()。

其次,eval()缺乏现代JavaScript引擎提供的高速caching编译代码的性能提升。 有限的内存,如一个Pi,这将被certificate是一个性能问题。