Windows рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрд╕реНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ Node.js рдХрд┐рддрдирд╛ рддреЗрдЬрд╝ рд╣реИ? рдФрд░ рдпрд╣ рд╣рдореЗрдВ рдХреНрдпрд╛ рдмрддрд╛рддрд╛ рд╣реИ?

[рдкреНрд░рд╢рд╕реНрддрд┐ рдкрддреНрд░] рдкреГрд╖реНрда рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ NodeJS.org рдкрд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рдардХ рд╕рд╛рдЗрдЯ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдХреЗ рдиреЗрддрд╛рдУрдВ рдХреЗ рдЪрд╛рд░ рдЙрджреНрдзрд░рдг рджреЗрдЦрддрд╛ рд╣реИ рдЬреЛ рдиреЛрдб рдХрд╛ рдЖрдирдВрдж рд╡реНрдпрдХреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЙрджреНрдзрд░рдг рд╣рд░ рдорд┐рдирдЯ рдмрджрд▓рддреЗ рд╣реИрдВред рдХреБрдЫ рднрд╛рдЧреНрдп (рдпрд╛ рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдзреИрд░реНрдп) рдХреЗ рд╕рд╛рде, рдкрд╛рдардХ рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдУрдкрди рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ, рдЗрдВрдХ рдХреЗ рдХреНрд▓рд╛рдЙрдбрд┐рдпреЛ рдХреИрд▓рд╛рдЯреЛ рд╕реЗ рдкреНрд░рд╢рдВрд╕рд╛ рдорд┐рд▓реЗрдЧреА ред - рдЖрдкрдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рджрд╛рдИрдВ рдУрд░ рдЪрд┐рддреНрд░рдг рдореЗрдВ рдЗрд╕ рдЙрджреНрдзрд░рдг рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдЬреАрд╡рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рд▓рд╛рдпрд╛? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдиреЛрдб рдЗрдВрдЬрди рднреА рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рдЖрдпрд╛ рдерд╛, рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХрд╛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ (рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд┐рдВрдбреЛрдЬ рдерд╛, рд╡рд┐рдВрдбреЛрдЬ 98 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ, рд╕рд╛рде рд╣реА рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 5 рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд) рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдЯреВрд▓ - рд╡рд┐рдВрдбреЛрдЬ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрд╕реНрдЯ ред

рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ: Node.js рдмрд╣реБрдд рддреЗрдЬ рд╣реИред (рд╡реИрд╕реЗ, рдЙрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рдЖрд╕рд╛рди рдПрдкреАрдЖрдИ рднреА рд╣реИред рд▓реЗрдХрд┐рди рдЧрддрд┐ рдореБрдЦреНрдп рдЪреАрдЬ рд╣реИред)

рд▓реЗрдХрд┐рди WSH рдХреА рддреБрд▓рдирд╛ рдореЗрдВ Node рдХрд┐рддрдирд╛ рддреЗрдЬ рд╣реИ?

рдЕрдиреБрднрд╡рдЬрдиреНрдп рд░реВрдк рд╕реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдбрдмреНрд▓реНрдпреВрдПрдПрдЪрдПрдЪ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд▓ рдЕрдкрдиреА рдПрд╡реЗрдВрдЬрд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдХреА рдЖрднрд╛рд╕реА рдорд╢реАрди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд┐рд╕ evgeniyup рдХреЗ рд╕рд╛рде рдХрд░реЗрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдПрдХ рджрд░реНрдЬрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ - Node.js рдХреЗ рд▓рд┐рдП рдПрдХ "рдмреИрд╕рд╛рдЦреА" рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рдЗрд╕рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ WSH- рдлрд╝рдВрдХреНрд╢рди WScript.Echo рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рджрд┐рдЦрд╛рдирд╛ (рдпрд╛ рдлрд┐рд░ рд╕реЗ рдЫрд┐рдкрд╛рдирд╛)
// CScript to Node.js: if (typeof WScript == "undefined") WScript = {}; if (typeof WScript.Echo == "undefined") WScript.Echo = function(){ var i; var log = ''; for (i=0; i < arguments.length; i++){ log += arguments[i]; } console.log(log); } var fannkuch = function(n) { var p = [], q = [], s = [], sign = 1, maxflips = 0, sum = 0; var i; for(i=1; i<=n; i++) p[i] = q[i] = s[i] = i; for(;;){ // Copy and flip. var q1 = p[1]; // Cache 1st element. if(q1 != 1){ for(i=2; i<=n; i++) q[i] = p[i]; // Work on a copy. var flips = 1; for(;;){ var qq = q[q1]; if(qq == 1){ // ... until 1st element is 1. sum = sum + sign*flips; if(flips > maxflips){ maxflips = flips; } // New maximum? break; } q[q1] = q1; if(q1 >= 4){ var i = 2, j = q1 - 1 for(;;){ var tmp = q[i]; q[i] = q[j]; q[j] = tmp; if(++i >= --j) break; } } q1 = qq; flips++; } } // Permute. if(sign == 1){ var tmp = p[2]; p[2] = p[1]; p[1] = tmp; sign = -1; // Rotate 1<-2. }else{ var tmp = p[2]; p[2] = p[3]; p[3] = tmp; sign = 1; // Rotate 1<-2 and 1<-2<-3. for(i = 3;; i++){ // print "mark 4" var sx = s[i]; if(sx != 1){ s[i] = sx-1; break; } if(i == n) return [sum, maxflips]; // Out of permutations. s[i] = i; // Rotate 1<-...<-i+1. var t = p[1]; for(var j = 1; j <= i; j++){ p[j] = p[j+1]; } p[i+1] = t; } } } } function getTimeSec(){ var d = new Date(); return (d.getTime() + d.getMilliseconds() / 1000.0) / 1000.0; } var n = 10; var start_time = getTimeSec(); var r = fannkuch(n); var sum = r[0], flips = r[1]; WScript.Echo( sum,"\n", "Pfannkuchen(",n,") = ",flips,"\n", "time = ",(getTimeSec() - start_time),"\n" ) 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджреЛ рдмрд╛рд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ (рдкрд╣рд▓реЗ рдиреЛрдб рдореЗрдВ, рдлрд┐рд░ рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрдЪ рдореЗрдВ) - рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдХрдВрд╕реЛрд▓ (рдФрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ ) рдорд┐рд▓реЗрдЧрд╛ :

[рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ]

рдЕрдВрддрд░ рдкрд░рд┐рдорд╛рдг рдХреЗ рджреЛ рдЖрджреЗрд╢ рд╣реИрдВ! рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд┐ Node.js рдПрдХ рд╕реЗрдХрдВрдб рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ , рд╡рд┐рдВрдбреЛрдЬ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрд╕реНрдЯ рджреЛ рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдкреАрд╕ рд░рд╣рд╛ рд╣реИ ред

рдореИрдВрдиреЗ рдПрдХ рдкреЗрдВрдЯрд┐рдпрдо 4 рдкреНрд░реЛрд╕реЗрд╕рд░ (2.2 рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЬ) рдкрд░ рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдкреА рдПрд╕рдкреА 3 рдореЗрдВ рдорд╛рдкрд╛ ред рдЖрдк рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдШрд░ рдкрд░ рдЗрд╕реЗ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖ рднреА рд╕рднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рд╕реБрд▓рдн рд╣реИ: рд╡реА 8 рдЗрдВрдЬрди рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдкреБрдирд░реНрдЬрдиреНрдо рд╕реЗ рдмрдЪ рдЧрдпрд╛ред рдЗрд╕рдХреА рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рд╕реМ рдЧреБрдирд╛ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рднрд╛рд╖рд╛ рдХреЗ рдирд┐рдпрдореЛрдВ рдореЗрдВ рдПрдХ рдХреЛрдЯрд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЧрдпрд╛ рд╣реИ (рдбреНрд░рд╛рдлреНрдЯ ECMAScript рд╣рд╛рд░реНрдордиреА рдорд╛рдирдХ рд╕реЗ рдХреБрдЫ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирдП рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рд╕реБрдкрд░рд╣реАрд░реЛ рдХреЙрдорд┐рдХреНрд╕ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ, рдПрдХ рдЕрдЬреАрдм рдмрд╛рдд рдЖрд╕рд╛рдиреА рд╕реЗ рд╣реЛрддреА рд╣реИ: рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреНрд░рдорд╛рджреЗрд╢рд┐рдд рдХрд┐рдпрд╛, рдлрд┐рд░ рд╡реА 8 рдмреНрд░реЙрдб рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдФрд░ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреЗрдЬреА рд╕реЗ рд╕реМ рдЧреБрдирд╛ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

рдФрд░ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдкрд░ рдФрд░ рдЕрдзрд┐рдХ рдЧрд╣рди рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЛ рдЬрдиреНрдо рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: evgeniyup рдиреЗ рдХрд▓ рдорд╛рдкрд╛ рдХрд┐ PHP 5.3.3 WSH рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ред рдХрд╣реАрдВ 1.2 рдЧреБрдирд╛ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЬреЗрдЖрдИрдЯреА рд╕рдВрдХрд▓рди рдФрд░ рдЕрдиреНрдп рд╡реА 8 рдЬреИрд╕реА рдЪрд╛рд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЧрддрд┐ рдореЗрдВ рддреЗрдЬ рд╡реГрджреНрдзрд┐ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрдмрдХрд┐ рдЕрдм рддрдХ рд╕рднреА рддрдерд╛рдХрдерд┐рдд рдкреАрдПрдЪрдкреА рддреНрд╡рд░рдХ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд░реВрдк рдореЗрдВ, рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреИрд╢рд┐рдВрдЧ рдФрд░ рдЗрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ред рд▓реЗрдХрд┐рди рдФрд░ рдирд╣реАрдВред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЕрдЧрд░ PHP рд╕реМ рдмрд╛рд░ рддреЗрдЬреА рд╕реЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рд╣реЛрдиреЗ рд▓рдЧреЗ рддреЛ рд╣рдорд╛рд░реЗ рдЖрд╕рдкрд╛рд╕ рдХреА рдбрдмреНрд▓реНрдпреВрдбрдмреНрд▓реНрдпреВрдбрдмреНрд▓реНрдпреВ рджреБрдирд┐рдпрд╛ рдХреИрд╕реЗ рдмрджрд▓ рдЬрд╛рдПрдЧреАред

рдпрд╛ рдХрдо рд╕реЗ рдХрдо рддреАрд╡реНрд░рддрд╛ рдХрд╛ рдХреНрд░рдоред

Source: https://habr.com/ru/post/In153697/


All Articles