ObjectScriptは、組み込み可能で非常に軽量な新しいオブジェクト指向のオープンソースプログラミング言語です。 ObjectScriptは、JavaScript、Lua、PHPなどの言語の機能を拡張します。 構文は主にJavaScript、Luaからの複数の割り当て、およびPHPからのプロパティの操作から取得されます。
ObjectScript 0.97-vm2は、PHP 5.3.3およびJS
よりもそれぞれ
34%および
61% 高速です。
テスト方法
テストでは、
Fannkuchアルゴリズムが使用されました。 非常に便利なテスト、パラメーター付きの1つの関数、パラメーターが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(;;){
JavaScriptでは、完全なソース:
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(;;){
テストは、Windows 7、CPU Core i7 2630QM 2Ghzプラットフォームで実施されました。 Fannkuchはパラメーター
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
要約データ
時間が短いほど良い。
ObjectScript-
20.099秒
PHP-
26.853秒
JS-
32.331秒
時間20.099を参考にして、結果をパーセンテージで減らします。
- OSはPHPより34%高速
- OSはJSより61%高速
ObjectScriptのソースコードとサンプルを
このリンクのこの記事からダウンロードし、
proj.win32 \ examples.sln 、
profile_benchmarkプロジェクトを開きます。
ObjectScript言語機能
OOP-あり
最初のクラスの値として機能する-は
短絡は
ガベージコレクター-3色インクリメンタルガベージコレクション
バイトコードでのコンパイル-はい
コンパイル済みプログラムのダウンロード-はい
モジュール性-は
実行時にロードされるモジュール-はい
クロスプラットフォーム-は
C / C ++との統合-は
ソース-オープンソース
ライセンス-MIT(すべての製品で無料で使用できます)
JavaScript、Lua、PHPから借用した言語のアイデア
言語の目標と目的:ゲームおよびプログラムロジックのスクリプト作成、クロスポータビリティ、Webおよびサーバー開発
著者
-Evgeny Golovin(開発者
oxsar.ruなど)
ObjectScript開発時間-2か月
ObjectScriptの開発とプロモーション
さらなる速度最適化の可能性はまだ尽きていませんが、現在の仕様はかなり良く見えます。 どうやらさらに最適化すると、少し遅くなります。 さまざまな言語へのバインディングを研究し、OSへのC ++バインディングを本当に便利にする予定です。
喜んで、私はあなたのために仕事を得て、あなたがOSで必要なAPIをラップします:)
PSプロジェクトには投資が必要であり、協力と重要な事項については、evgeniy.golovin [AT] unitpoint.ruに安全に書き込むことができます。
ObjectScriptに関するその他の関連記事: