ObjectScript рдПрдХ рдирдпрд╛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдмрд╣реБрдд рд╣рд▓реНрдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╣реИред ObjectScript рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд▓реБрдЖ рдФрд░ PHP рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИред рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реВрдЖ рд╕реЗ рдХрдИ рдХрд╛рдо, PHP рд╕реЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
ObjectScript 0.97-vm2 рдХреНрд░рдорд╢рдГ PHP 5.3.3 рдФрд░ JS рд╕реЗ
34% рдФрд░
61% рд╕реЗ рдЕрдзрд┐рдХ
рддреЗрдЬрд╝ рд╣реИред
рдХреИрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП,
рдлреЗрдирдХрдЪ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд░реАрдХреНрд╖рдг, рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди, рдЬрдм рдкреИрд░рд╛рдореАрдЯрд░ 1 рд╕реЗ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЧрдгрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрднрдЧ 10 рдЧреБрдирд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред
рддрджрдиреБрд╕рд╛рд░, рдкрд░реАрдХреНрд╖рдг рдкрд░ рдХрдо рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдмреЗрд╣рддрд░ред
Fannkuch ObjectScript рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкреВрд░реНрдг рд╕реНрд░реЛрдд:
print arg var fannkuch = function(n) { var p, q, s, sign, maxflips, sum = [], [], [], 1, 0, 0 var i for(i=1; i<=n; i++) p[i], q[i], s[i] = i, i, i for(;;){
PHP рдореЗрдВ, рдкреВрд░реНрдг рд╕реНрд░реЛрдд:
<?php function fannkuch($n) { $p = array(); $q = array(); $s = array(); $sign = 1; $maxflips = $sum = 0; for($i=1; $i<=$n; $i++) $p[$i] = $q[$i] = $s[$i] = $i; for(;;){
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдкреВрд░реНрдг рд╕реНрд░реЛрдд:
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(;;){
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рд╡рд┐рдВрдбреЛрдЬ 7, рд╕реАрдкреАрдпреВ рдХреЛрд░ i7 2630QM 2Ghzред рдлрдиреНрдиреЗрдЪреБрдХ рдиреЗ рдкреИрд░рд╛рдореАрдЯрд░
10 рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ред
ObjectScript 0.97-vm2 рд░рд┐рд▓реАрдЬрд╝ рдбрдмрд▓ рдиреНрдпреВрдореЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ (рдлреНрд▓реЛрдЯ рдХреЗ рд╕рд╛рде рдпрд╣ рд▓рдЧрднрдЧ 10% рддреЗрдЬрд╝реА рд╕реЗ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрди рдирдВрдмрд░реЛрдВ рдХреЛ рд▓реЗрдЦ рдореЗрдВ рдирд╣реАрдВ рджреЗрддрд╛, рдХреНрдпреЛрдВрдХрд┐ PHP рдФрд░ JS рдореЗрдВ рдбрдмрд▓ рдбрдмрд▓ рдирдВрдмрд░ рд╣реИ, PHP рдореЗрдВ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ рднреА рд╣реИ:
c:\Sources\OS\bin\os.exe test_fannkuch.os 10
рдЖрдЙрдЯрдкреБрдЯ (рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдордп 10 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдФрд╕рдд рд╣реИ):
73196 Pfannkuchen(10) = 38 time = 20.0991
PHP 5.3.3:
c:\WebServers\usr\bin\php5.exe test_fannkuch.php 10
рдЖрдЙрдЯрдкреБрдЯ (рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдордп 10 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдФрд╕рдд рд╣реИ):
73196 Pfannkuchen(10) = 38 time = 26.853
JS (рдкреИрд░рд╛рдореАрдЯрд░ 10, test_fannkuch.js рдХреЗ рдЕрдВрджрд░ рд╣реИ):
Cscript.exe test_fannkuch.js
рдЖрдЙрдЯрдкреБрдЯ (рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдордп 10 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдФрд╕рдд рд╣реИ):
73196 Pfannkuchen( 10 ) = 38 time = 32.3313
рд╕рд╛рд░рд╛рдВрд╢ рдбреЗрдЯрд╛
рд╕рдордп рдЬрд┐рддрдирд╛ рдХрдо рд╣реЛрдЧрд╛, рдЙрддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ -
20.099 рд╕реЗрдХрдВрдб
PHP -
26.853 рд╕реЗрдХрдВрдб
рдЬреЗрдПрд╕ -
32.331 рд╕реЗрдХрдВрдб
рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордп 20.099 рд▓реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрдо рдХрд░реЗрдВ:
- PHP рдХреА рддреБрд▓рдирд╛ рдореЗрдВ OS 34% рддреЗрдЬ рд╣реИ
- JS рдХреА рддреБрд▓рдирд╛ рдореЗрдВ OS 61% рддреЗрдЬ рд╣реИ
рдЖрдк
рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдЗрд╕ рд▓реЗрдЦ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ ,
proj.win32 \ example.sln ,
profile_benchmark рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВред
рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдБ
OOP - рд╡рд╣рд╛рдБ рд╣реИ
рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп - рд╣реИ
рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рд╣реИрдВ
рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ - рддреНрд░рд┐-рд░рдВрдЧ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣
рдмрд╛рдЗрдЯреЗрдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рди - рд╣рд╛рдБ
рд╕рдВрдХрд▓рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ - рд╣рд╛рдБ
рдореЙрдбреНрдпреВрд▓рд░рд┐рдЯреА - рд╣реИ
рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ - рд╣рд╛рдБ
рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо - рд╣реИ
C / C ++ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг - рд╣реИ
рд╕реНрд░реЛрдд - рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд
рд▓рд╛рдЗрд╕реЗрдВрд╕ - MIT (рдореБрдлреНрдд рдореЗрдВ рдХрд┐рд╕реА рднреА рдЙрддреНрдкрд╛рдж рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд▓реБрдЖ рдФрд░ PHP рд╕реЗ рдЙрдзрд╛рд░ рд▓реА рдЧрдИ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░
рднрд╛рд╖рд╛ рдХреЗ рд▓рдХреНрд╖реНрдп рдФрд░ рдЙрджреНрджреЗрд╢реНрдп: рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдЧреЗрдо рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдЬрд┐рдХ, рдХреНрд░реЙрд╕ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА, рд╡реЗрдм рдФрд░ рд╕рд░реНрд╡рд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ
рд▓реЗрдЦрдХ - рдПрд╡рдЧреЗрдиреА рдЧреЛрд▓реЛрд╡рд┐рди (рдбреЗрд╡рд▓рдкрд░
oxsar.ru рдФрд░ рдЕрдиреНрдп)
ObjectScript рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╕рдордп - 2 рдорд╣реАрдиреЗ
ObjectScript рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╕рдВрд╡рд░реНрдзрди
рдЖрдЧреЗ рдХреА рдЧрддрд┐ рдЕрдиреБрдХреВрд▓рди рдХреА рдХреНрд╖рдорддрд╛ рдЕрднреА рддрдХ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд▓рдЧрддреЗ рд╣реИрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ рдЖрдЧреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде, рдЖрдк рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реА рдпреЛрдЬрдирд╛ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдмрд╛рдБрдзрдиреЗ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП C ++ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдмрдирд╛рдирд╛ рд╣реИред
рдмрд╣реБрдд рдЦреБрд╢реА рдХреЗ рд╕рд╛рде рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдиреМрдХрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдУрдПрд╕ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдПрдкреАрдЖрдИ рд▓рдкреЗрдЯреВрдВрдЧрд╛ :)
рдкреБрдирд╢реНрдЪ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдирд┐рд╡реЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рд╣рдпреЛрдЧ рдФрд░ рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЛрдВ рдкрд░, рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ evgeniy.golovin [AT] Unitpoint.ru рдкрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ
ObjectScript рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреНрдп рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓реЗрдЦ: