Javascript v8 multithreading

di il
2 risposte

Javascript v8 multithreading

Buongiorno,
devo velocizzare una porzione di codice che ha una serie di cicli e condizioni, sono 32 cicli FOR, è un calcolo di tipo BruteForce:

for (x01=1;x01<tt+1;x01++){
  if (((xLiv01 + Liv01 * 0.2) - xlivello) > 0.1){break;};
for (x02=1;x02<tt+1;x02++){
  if (((xLiv02 + Liv02 * 0.2) - xlivello) > 0.1){break;};
for (x03=1;x03<tt+1;x03++){
  if (((xLiv08 + Liv08 * 0.2) - xlivello) > 0.1){break;};
... code ...  
  
vorrei far lavorare tutti i core del processore, come posso fare?

2 Risposte

  • Re: Javascript v8 multithreading

    Non vorrei dire una scemenza, ma penso che l'unico modo sia usare i WebWorker.

    oppure ho trovato anche questa libreria: https://keithwhor.github.io/multithread.js
  • Re: Javascript v8 multithreading

    Ok, grazie...
    ho trovato questo https://www.hamsters.i, ed utilizza i WebWorker
    come posso modificare il codice che ho postato ??? (per sintetizzare il codice ho eliminato del codice e delle condizioni intermedie, ma la struttura principale è la seguente)
    
    <html>
    	<script type="text/javascript" src="hamsters.min.js"></script>
    	<script>
    	
    	var Comb[0] = new Array(3, 7);
    	
    	function xPrint(a){document.getElementById("txt").innerHTML += a;};
    	
    	function Nx(Na, Na1){
    		if (Na1 == 0){ return Na};
    		if (Na1 == 1){ return Na * 0.1};
    		if (Na1 == 2){ return Na / 9};
    		if (Na1 == 3){ return Na * 0.01};
    	}
    	
    	function Start2() {
    		var Nnn = 0; var NMX = 0; var NC1 = 0; var NC2 = 0; 
    		var Nm1 = 0; var Nm2 = 0; var Nx1 = 0; var Nx2 = 0;
    		NC1 = Comb[Nnn][0]; NC2 = Comb[Nnn][1];
    		for (Nx1=0;Nx1<4;Nx1++){
    			Nm1 = Number(Nx(NC1, Nx1));
    		for (Nx2=0;Nx2<4;Nx2++){
    			Nm2 = Number(Nx(NC2, Nx2));
    			
    			NMX = NMX + Nm1 + Nm2;
    			xPrint(NMX|0);
    		}}
    	}
    	
    	function Start1() {
    		Start2();
    	}
    	</script>
    	<body>
    		<form action="#" onsubmit="Start1();return false">
    		<input type='submit' onclick='Start1()' value="Start2"></input>
    		</form>
    		<div id="txt" style="height:70% ;width:100%; background-color:#FFF027;"></div>
    	</body>
    </html>
    
Devi accedere o registrarti per scrivere nel forum
2 risposte