任天堂「今後C++は捨てJavaScriptで開発していく」

2013/03/20(水) 13:07:40.60
任天堂のゲームはこれまで,CやC++といったプログラミング言語で開発されており,
そのため高いパフォーマンスを発揮していたが,反面,開発に時間がかかっていたという。
このセッションではそれ以外の方法,つまりHTMLやJavaScriptを使ってWii Uの全機能にアクセスしつつ,
より手軽にゲーム開発を行う方法が説明されるようだ。
http://www.4gamer.net/games/999/G999905/20130316001/
2013/04/03(水) 10:53:41.38
>>431
JavaScriptでCと同等の処理が書けるかって話じゃなくて、同等の速度がだせるかって話なんですけど。
2013/04/03(水) 10:56:50.87
emscripten はそういうのじゃないとおもうんだ
c->js はかのうかもしれない js->c は範疇外だろう?
435デフォルトの名無しさん
垢版 |
2013/04/03(水) 10:57:37.21
逆にJavaScriptソースと同等機能を実現するC、アセンブラソースを作り出すことも可能。
JavaScript ⇒ C、アセンブラ ⇒ バイナリ としたらJavaScriptも速く出来る。
2013/04/03(水) 10:58:41.14
「この処理系でJSを実行したらCと同等の速度になる」って実例をバーンと出せば
終わる話なのに、できないでいろいろ理屈を言ってることは、やっぱ遅いんだな。
わかりました。
2013/04/03(水) 10:59:28.28
ちょっとまてよw
>>401 = >>425 かよ
真面目にレスして損したわ・・・・・・
2013/04/03(水) 11:00:35.68
>>435
動的型の言語は単純にCに変換できないでしょ。
2013/04/03(水) 11:03:15.27
>>435
>JavaScript ⇒ C
これで作られるCコードを速度まで同等に最適化するのが難しいわけよ
莫大な計算量が必要で現実的じゃない
440デフォルトの名無しさん
垢版 |
2013/04/03(水) 11:08:59.46
C++からJavaScriptへ変換し、さらにJavaへ移植する話の続き
http://d.hatena.ne.jp/aoisome/20130121/1358779265

[GDC 2013]Webブラウザで「Unreal Engine 3」がヌルヌル動く!? ゲームエンジンを5日でHTML5へ移植した驚きの技術とは
http://www.4gamer.net/games/032/G003263/20130328081/

モジラ、ブラウザ上でゲーム機並みの3Dゲーム体験を可能にする取り組みなど発表
http://headlines.yahoo.co.jp/hl?a=20130328-35030070-cnetj-sci


Mozilla、Firefox 22 にブラウザゲームを高速化する「asm.js」を搭載- インターネットコム(2013年3月28日12時00分)
ゲームは、大量のリソースと複雑なコンピューティングを要求するタスク。
このため、ゲームは、ハードウェアの特性にあわせた専用 OS 向けに、ネイティブコードで書かれるのが普通だ。
だが、Mozilla の JavaScript 高速化プロジェクトにより、高いパフォーマンスを持つブラウザゲームの実現が、現実味を帯びてきた。

米国 Mozilla は3月27日、ゲームエンジン「Unreal Engine」を開発した Epic Games と協働していることを発表した。
この共同プロジェクトは、Unreal Engine 向けのゲームを、Web ブラウザ内で動作可能にすることを目指すもの。

「Emscriptem」は C で書かれたコードを、どの Web ブラウザでも動作する JavaScript に書き換えるクロスコンパイラ。
Mozilla CTO であり、JavaScript の開発者でもある Brendan Eich 氏は InternetNews.com に対し、emscriptem を利用すれば、開発者が Web フレンドリーな新しいタイプの開発へ移行することが、より容易になると説明した。
http://media.image.infoseek.co.jp/isnews/photos/internetcom/internetcom_20130328_010_0-small.jpg
http://news.infoseek.co.jp/article/internetcom_20130328_010
2013/04/03(水) 11:09:47.06
ja.wikipedia.org/wiki/%E5%A4%89%E6%8F%9B%E8%A8%80%E8%AA%9E

asm.js もそうだけど 中間言語というかtranspilerかますと
復元できない
復元までふくめるとcoffeeみたいになるし…あれ解釈エンジンは
おなじだからこそparserラクしてる面もあるし
2013/04/03(水) 11:14:39.09
>>440
どっかの記事だと、asm.js でもネイティブコードの倍の遅さらしいけど。
(倍でもすごいけど)
2013/04/03(水) 11:16:11.82
で、俺の持ってるPCのCPUとGPUを解析して完全に最適化されたコマンドを吐いてくれるJITエンジンはいつ作ってくれるの?
2013/04/03(水) 11:21:03.45
>>440
asm.jsのコードはJavascriptのコードとしても実行できるけどその場合はかなり遅い

モジラのVMは、asm.jsのコードをjavascriptのコードとしてではなくて
特殊な静的言語で書かれたコードとして解釈して実行することができて、
その場合は同じようなのネイティブコードの半分ぐらいの実行速度が出る

つまりこれはJavascriptのコードを早く実行する技術とは全然違う
445デフォルトの名無しさん
垢版 |
2013/04/03(水) 11:23:55.23
Mozilla、Firefox 22 にブラウザゲームを高速化する「asm.js」を搭載 - Infoseek ニュース

Mozilla のゲームプラットフォーム戦略を担当する Martin Best 氏は InternetNews.com に対し、
asm.js コードは、JavaScript 言語の中核要素を使用すると述べた。
基本的には、asm.js を意識して書かれたコードのみが高速化されることになる。
だがこの技術には後方互換性があり、Best 氏によれば、ブラウザが asm.js をサポートしていない場合であっても、
開発者は非常に効率の高いコードを書けると述べている。
http://news.infoseek.co.jp/article/internetcom_20130328_010
2013/04/03(水) 11:29:38.72
反論がなくなったから「Javascriptは処理系しだいでCと同等の速度がでる」って話は
間違いでしたって認めたって解釈させてもらいます。
447デフォルトの名無しさん
垢版 |
2013/04/03(水) 11:31:53.62
>>442
処理内容による。
例えば、asm.jsが円周率を1億万桁求める事をサポートし
それがC言語で書かれていてバイナリとして組み込まれていれば、
単体ネイティブバイナリと計算速度は同等だろう。
2013/04/03(水) 11:35:56.15
>>447
それは、速度を求められるところはCで書かないとCと同等の速度はでないってことですね。
2013/04/03(水) 11:38:53.98
>>443
CPU負荷や空きメモリ、処理対象データに合わせた動的最適化も追加でよろしく!
2013/04/03(水) 11:43:43.06
処理の重いところはグラフィックカードがやるから
ライブラリーに投げるだけでしょ?
ロジック部分の生産性が上がるなら言語部分の
速度を議論するのは不毛じゃないの?
ただ、プログラムの規模が大きくなってきたときに
Javascriptってかえって生産性低いのではないだろうかって
気がするんだけど
結局プログラムの生産性を下げるのって不注意で作り込んだ
バグをつぶすところが大きくて、Javascriptでうまく動かすのには
本来コンパイラーガやってくれる部分を
人間が細心の注意を持ってやらなきゃいけない様に見える
そう言う機能をどんどん追加していったら、
結局遅くて使いにくいC++の亜種になったりしそう
HTML5が流行りでみんながこのビッグウエーブに乗ろうと
するし、実際適用範囲が広がるのは確実だと思うけど、
出来るからって何でもそれでやろうとするのは凄く
間違った方向に進むと思うな
2013/04/03(水) 11:47:33.33
VB.NETが生産性最高
452デフォルトの名無しさん
垢版 |
2013/04/03(水) 12:02:14.73
JavaScript処理系自体がほぼC/C++製だ。
JavaScript処理系をJavaやJavaScriptやC#や純関数型で書くのも可能だろうが。
速くしたい所を念入りに最適化するのは当然。
453デフォルトの名無しさん
垢版 |
2013/04/03(水) 12:39:39.19
Cコンパイラが出力した機械語と速度比較するのが間違い。CコンパイラソースをJavaScriptソースに変換できれば機械語として同じ速度だ。
言語性能は同じ土台のインタプリタで比較しろ。



CINT(シーイント)
CINT はC/C++ 言語インタープリタです。
CINTを使うと、C/C++で書かれたソースコードをコンパイルせずに実行できます。
90%-95% 実行可能だそうです。
http://belle.sci.fukuoka-u.ac.jp/index.php?CINT

Production Version 5.34
Availability
ROOT is available in binary and source form. The binaries are available for most supported platforms.
http://root.cern.ch/drupal/content/production-version-534



CINT・C++インタープリタ
日本語訳:柴田淑夫(Shibata Toshio)
この章ではCINT、ROOTのコマンドラインインタープリタおよびスクリプトプロセッサーについて述べる
http://www.dw-sapporo.co.jp/technology/658766f830d530a130a430eb7f6e304d5834/root_usersguide_jp/7CINT.pdf
2013/04/03(水) 12:50:29.60
>>453
>CコンパイラソースをJavaScriptソースに変換できれば機械語として同じ速度だ。
Cコンパイラソースって何だ?
Cコンパイラのソースコード?
Cコンパイルするプログラムのソースコード?

何と何が機械語として同じ速度になるの?
2013/04/03(水) 12:52:23.05
>>453
ネイティブのCじゃなくてインタプリタのCとJavascriptを比較しろって意味?
そうする意味がわからない。

それにJavascriptじゃCの9割以上の性能出すのムリなんじゃないの。
2013/04/03(水) 12:54:28.66
Cの生産性の悪さとインタープリタの性能の低さを合わせた最強のツールか
2013/04/03(水) 12:55:49.58
無駄に改行入れる奴って例外なくバカだね
2013/04/03(水) 12:58:03.46
もはや自分でも何言ってんのか分かってなさそうだ

最近のコンパイル言語はコンパイルからJITコンパイルに移行しつつ有って最近のスクリプト言語もインタプリトからJITコンパイルに移行しつつ有るというのに、コンパイル言語の不完全なインタプリトとスクリプト言語の最新JITコンパイルを比較とか何がしたいんだ。
459デフォルトの名無しさん
垢版 |
2013/04/03(水) 13:00:33.11
機械語、CPUが直に理解できるワードはC言語とは別もの。
機械語で比較するならば、Cコンパイラと同じ出力を作れれば同速度であるといえる。
Cコンパイラのソースコードを移植できる言語であれば、C言語と同速度。
2013/04/03(水) 13:07:17.13
>>459
何のプログラムコードで書いた何をするプログラムが同速度になるの?
461デフォルトの名無しさん
垢版 |
2013/04/03(水) 13:12:22.58
459だとC言語ソースをJavaScriptでコンパイルしたものが
C製Cコンパイラと同速度という意味だが。
JavaScriptソースとC言語ソースに互いに変換可能で無駄がないとすれば
JavaScriptソースもJavaScript製コンパイラでC言語並の速度が出るということ。
2013/04/03(水) 13:15:09.28
>>461
>JavaScriptソースとC言語ソースに互いに変換可能で無駄がない
ここが間違ってる
JavascriptソースからC言語ソースへの変換は、Javascriptソースのほうが情報量が少ないから、
同等なものに変換するには事実上不可能なほどの計算量が必要になる
2013/04/03(水) 13:18:32.40
>>462なので、
JavaScriptソースをJavaScript製コンパイラでC言語並の速度を出すというのは不可能
2013/04/03(水) 13:28:12.44
JSって変数が全部バリアント型なのにC並の速度が出る。。。わけないだろバカ
2013/04/03(水) 13:32:19.09
動的型付言語とは何なのか
CコンパイラがCソースコードをどのようなマシン語に変換するのか
この辺を勉強してみれば>>462が如何に難しいか理解できる
2013/04/03(水) 13:38:38.02
なんか致命的な勘違いか致命的な極論が混ざってるようにしか見えんわ
ゲスパーしとくと、JSにコンパイラ移植してもコンパイルしたコードはJSの実行環境では動かないから意味は無いしコンパイル元のコードがJSじゃないから本末転倒だぞ

>>464
そこを全部型付きにして高速化を図ろうってのが最近のトレンドだが、もはや人が書くような言語じゃねと言わんばかりに別言語の中間コードから型ヒント付きJSを生成する技術が登場する始末
JSを元にした中途半端な謎中間言語とか誰得状態だし、なんてーかそこまでやるならMSILでもLLVMでもいいからそのへんのJITレイヤをそのまんまJSに組み込んで中間コードからFunctionオブジェクト生成する機能でも追加しろよって感じだ
467デフォルトの名無しさん
垢版 |
2013/04/03(水) 13:47:40.93
C言語が機種依存して最適化してる。C言語なみの速度がJavaScriptで実現可能かということは原理的には可能だろ。
C++のテンプレート使うと、必要な型のすべてのバイナリを生成し、バイナリの中身は型付き変数として動作する。
JavaScriptコンパイラを作り最適化したらいいだけ。
2013/04/03(水) 13:53:54.03
>>467
原理的に可能って、JSでコンパイル時点ですべての型を予測して
あらかじめ生成するなんてムリだろ。
2013/04/03(水) 13:55:33.59
>>467
テンプレートの場合に型が変化するのはそのテンプレート引数の組み合わせだけだけど、
Javascriptの関数の場合に型が変化する組み合わせはそれこそ莫大な数になる可能性が考えられるわけよw
しかも実行と同等なことをしてみないと必要な組み合わせが判明しない
なので無理
2013/04/03(水) 13:56:06.23
C言語自体は機種依存してないよな
言語とライブラリを分離してるだけで
#ifdef使えば
UNIXとWindowsですらソースコードレベルのポータビリティが有る訳で
API部分を抽象化しても結局うまくいかないのはJavaが証明したし
JavaScriptもそれを繰り返すことになるだろう
471デフォルトの名無しさん
垢版 |
2013/04/03(水) 15:51:24.12
>>468>>469
あまりに実行中に新型の型を生成するようではエラー出してコンパイルを停止させる。
どこで新型が生成されるか事前に判別できるから、無限ならず有限で済むケースでのみコンパイルを成功させる。
2013/04/03(水) 16:46:56.25
>>471
ちょっと複雑なコードを書いたらすぐエラーになるか、コンパイルが終わらなくなりそう。
2013/04/03(水) 17:06:28.40
>>471
ごまかすな
お前が言ってたのはJavascriptのコードをCのコードと同等な速度に変換できるってことだろ?

変換可能な部分のみ変換するのでは
JavascriptのコードをCのコードと同等な速度に変換できるとは言えない

その程度だったら事前に変換してコンパイルじゃなくて、JITコンパイルで十分なのよ
2013/04/03(水) 17:10:40.28
GCありきで書かれたクソコードを静的解析してスタックに割り付ける作業に戻れ
475デフォルトの名無しさん
垢版 |
2013/04/03(水) 19:12:32.02
JavaScriptでC言語に並べるのは事実。
CソースをJavaScriptソース内にStringとしてコピペして
JavaScript製Cコンパイラに通したら、C製Cコンパイラと同じ実行ファルを生成でき
速度はC製Cコンパイラと一緒。
2013/04/03(水) 19:34:34.56
>>393 >>394 >>398 >>401 >>415 >>422 >>425
>>430 >>431 >>435 >>440 >>445 >>447 >>452
>>453 >>459 >>467 >>471 >>475
病院行け
2013/04/03(水) 19:35:41.34
>>475
つまりCで書かないとはやくならないのか。
2013/04/03(水) 20:04:29.24
最適化トランスコーダを書いてさらにCコンパイラで最適化だ!!!
聞きかじりだが、PyPyみたいになるかもしれんぞ。
2013/04/03(水) 20:05:24.22
っていうか、LLVMのフロントエンド書くんだ!!
2013/04/03(水) 21:40:45.82
LLVMはバックのほうが windows でまともにうごくかな!
2013/04/03(水) 21:57:45.21
twitter.com/shelarcy/status/319102598693138433

GHCのSIMD命令対応
がんばるHaskeller...
2013/04/03(水) 22:13:15.70
まあ、関数型は並列性抽出しやすいからな。
2013/04/04(木) 03:26:18.20
>>467
全てではなく呼び出し関係を追いかけて出現した型だけだし、一度確定した型はC++では変化しない
JavaScriptの場合型が変化するどころか型の定義そのものが後から変化してしまうから手に負えない
>>471
「どこで新型が生成されるか事前に判別でき」「ない」
君の大好きチューリングマシンの停止性問題と同じ理屈で、ある条件である部分(ある内容の型生成)が実行されるかは判別できない
結果、実行中に実際生成された型でその都度ネイティブコードを生成するJIT実行か、連想配列を使ったインタプリタに毛が生えたような実装になる
>>475
それはCのコードをコンパイルしただけでJavaScriptコードをコンパイルした事にはならないし、
JavaScript上ではコンパイルで得たバイナリを実行する手段がなくて何の意味もない
2013/04/04(木) 03:42:06.96
>>478-479
素のJavaScriptで型特定は無理ゲーだし諦めて、もうJScript.net(≠JScript)でよくね?
型ヒントとか色々付けないとコンパイル通らないけど、一応IL吐けるからC++/CLRといい勝負できるかもしれん
もっとゴリゴリやりたい部分はMSILからFunction生成で誤魔化すw
2013/04/04(木) 21:25:36.61
なんでMS前提なんだよ
2013/04/05(金) 10:08:24.63
JavaScriptと実用レベルで互換が有ってネイティブコードまでまともに変換できる製品がJScript.netくらいしか思いつかなかったんだ
吐けるバイナリはMSILだけどMSILのJITコンパイルは起動時/インストール時にほとんど終わるからJSのコンパイル基盤って意味では一番まともかと

JScript.netが吐き出すILやそのアセンブリを見たこと無いからなんとも言えんけど、
ILの品質次第ではJavaScriptで書いたコードが等価なC/C++で書いたコードとタメ張るかもしれん
2013/04/05(金) 23:13:48.01
>>486
たぶんないなw
2013/04/05(金) 23:51:12.81
まぁ最近の家庭用据置ならちょっとしたアプリやホビープログラムならスクリプトでお手軽に
ってのはありじゃね
商用のフルパッケージでそんな事してたらアホだけど
2013/04/06(土) 04:44:20.35
いいからファミリーべーしっくやってろw
2013/04/06(土) 09:12:28.81
>>488
FPSのなかのLuaさん「・・・」
2013/04/06(土) 10:25:08.57
いまや商用のフルパッケージなゲームでこそ、
DSLとしてスクリプト言語的なものを使うのは普通だね
2013/04/06(土) 10:35:10.64
大きなゲームでスクリプト使うのは
・リロードで差し替えられることによるトライ&エラーしやすさ
・ビルド環境不要
という面が大きい。

Lua好きなんだけど、
PCアプリではBlender-Pythonみたいなあまり有名なのが無いのはなぜなんだろう。
2013/04/06(土) 12:51:51.47
Moai SDKでググれ
2013/04/06(土) 21:04:16.48
AGK / DarkBASIC / Basic4GL / 99BASIC 2013 Part.1
http://kohada.2ch.net/test/read.cgi/pcnews/1365242417/l50

世界中でダントツの人気!各BASICの特徴

・ AGK App Game Kit(http://www.appgamekit.com/
 海外で主流のマルチプラットフォームの開発環境。
 C言語風味の記述が特徴で、中身はDarkBASIC。
 Ver1.088で3Dインターフェイス対応。

・ DarkBASIC(http://darkbasic.thegamecreators.com/
 VisualBASIC以前の旧式マイクロソフトBASICの進化形。
 DirectXをサポート、商用アプリ作成可能。
 C言語にはない強力な文字列操作、複雑な記述が可能。

・ Basic4GL(http://www.basic4gl.net/
 OpenGLを基幹インターフェイスにしたゲーム用開発言語。
 考え方はAGKやDarkBASICに近い。
 上記の2つと同じように実行ファイルのメディアパッケージング可能。

・ 99BASIC(http://www.sagami.ne.jp/tadaka/99Basic/
 MSXやPC-8801世代の旧式マイクロソフトBASICに準拠したBASIC。
 DirectXはサポートしておらず、簡単な2Dインターフェイスのみ使える。
 インタープリター形式で直接実行モードもある
495デフォルトの名無しさん
垢版 |
2013/04/07(日) 09:54:54.98
[参考] ベンチマーク - FOR-NEXT10億回ループ

(表1)ベンチマークテスト結果(数字が小さいほど速い)

                        MASM32  JavaScript  DarkBASIC  AGK  99BASIC
---------------------------------------------------------------------------------
PC(CeleronD2.66GHz)[sec]       0.7828     7.772     20.853   65.423  1532.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率        1.0      9.928     26.638   83.575  1957.0
---------------------------------------------------------------------------------
Nexus7(Tegra3)1.3GHz[sec].       -----     36.480     -----    320.18  -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率.       -----     46.601     -----    409.01  -----
---------------------------------------------------------------------------------
iPhone4S(Cortex-A9)800MHz[sec]  -----     36.521     -----   (※注)  -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率        -----     46.654     -----   (※注)  -----
---------------------------------------------------------------------------------
(※注)iPhone版AGKターゲットエミュレーターはビデオストリームのため除外。
2013/04/07(日) 10:36:29.50
そういうアプリ内の処理時間の割合が20%未満のグループに入るものの比較をしてもほとんど意味ないよ。
80%に含まれるものの比較をしなきゃ。
2013/04/07(日) 10:40:14.04
それと、例えば1秒とかの単位時間あたりの処理回数も考慮しないとね。
1秒あたりたかだか100回程度しか行わないのに、10億回の処理時間を比べても意味ないし。
2013/04/07(日) 10:47:18.84
ループ速度の測り方は難しいけど
ループが一番処理として多いのは間違いないだろ
批判が適当すぎ
2013/04/07(日) 10:57:26.21
そもそもBASICと比較してどうすんだ
500デフォルトの名無しさん
垢版 |
2013/04/07(日) 11:07:16.45
つまんね
501デフォルトの名無しさん
垢版 |
2013/04/07(日) 11:13:46.06
[参考] ベンチマーク - FOR-NEXT10億回ループ

(表2)ランキング表
                     開発環境      タイム[sec]   MASM32を1とする相対倍率
------------------------------------------------------------------------------------
PC(CeleronD2.66GHz).       MASM32.        0.7828              1.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).       JavaScript       7.772              9.928
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).       DarkBASIC      20.853              26.638
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nexus7(Tegra3)1.3GHz       JavaScript.      36.48              46.601
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
iPhone4S(Cortex-A9)800MHz  JavaScript.      36.521              46.654
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).       AGK          65.423              83.575
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nexus7(Tegra3)1.3GHz       AGK.         320.187           409.01
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).       99BASIC .     1532.0              1957.0
------------------------------------------------------------------------------------
2013/04/07(日) 11:26:48.95
「開発環境:JavaScipt」から滲み出る頭の悪さ
2013/04/07(日) 11:27:26.33
>>498
重要なのは、ループ内の処理速度であってループそのものの処理速度ではない。
まあループそのものの処理速度が致命的に遅いのなら問題だが。1回1msかかるとか。
2013/04/07(日) 11:44:52.87
ループそのものから重ければ推して知るべし
恥かいちゃったね
2013/04/07(日) 12:10:52.16
>>504
推して知れないからいろんなahootoutのページでは様々な切り口でベンチしてるんだよ。
それと、今回任天堂がやろうとしているドメインの機能やAPIを考慮したベンチじゃないと意味ないね。
2013/04/07(日) 12:12:32.47
まあただのループ比較したって意味ないよね
LINPACKみたいに演算やデータアクセスのあるのを比較すればいいのに
507デフォルトの名無しさん
垢版 |
2013/04/07(日) 12:15:30.23
結構バカが吊れたなw
2013/04/07(日) 12:26:27.33
今どき釣り宣言とか・・・
509デフォルトの名無しさん
垢版 |
2013/04/07(日) 12:31:14.37
>>507
顔真っ青だぞお前
510デフォルトの名無しさん
垢版 |
2013/04/07(日) 12:43:14.21
本日のロバ=任天堂w
2013/04/07(日) 12:47:08.73
わからないとわめくバカw
2013/04/07(日) 12:52:10.18
つか、masmの10倍くらいしか時間がかからないんだったら問題ないよね
2013/04/07(日) 13:03:16.15
ねんまつ
2013/04/07(日) 13:26:57.60
インクリメントと条件分岐だけで10倍って
普通の処理なら10倍どころじゃすまないってことだぞ
2013/04/07(日) 13:41:23.20
FOR-NEXT10億回ループはJITコンパイラ実装のJavascriptにかなり有利な条件だよね
516デフォルトの名無しさん
垢版 |
2013/04/07(日) 16:35:01.96
[参考] ベンチマーク - FOR-NEXT10億回ループ ver1.02 page 1/2

(表1)ベンチマークテスト結果(数字が小さいほど速い)

                        MASM32  Visual C++  JavaScript  DarkBASIC  AGK  Basic4GL  99BASIC
-------------------------------------------------------------------------------------------------------
PC(CeleronD2.66GHz)[sec]       0.7828     2.821     7.772     20.853   65.423  285.703   1532.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率        1.0      3.604     9.928     26.638   83.575  364.975   1957.0
-------------------------------------------------------------------------------------------------------
Nexus7(Tegra3)1.3GHz[sec].       -----     -----    36.480     -----    320.18  -----    -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率.       -----     -----    46.601     -----    409.01  -----    -----
-------------------------------------------------------------------------------------------------------
iPhone4S(Cortex-A9)800MHz[sec]  -----     -----    36.521     -----   (※注)  -----    -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率        -----     -----    46.654     -----   (※注)  -----    -----
-------------------------------------------------------------------------------------------------------
(※注)iPhone版AGKターゲットエミュレーターはビデオストリームのため除外。
517デフォルトの名無しさん
垢版 |
2013/04/07(日) 16:35:35.22
[参考] ベンチマーク - FOR-NEXT10億回ループ ver1.02 page 2/E

(表2)ランキング表(数字が小さいほど速い)

                    開発環境     タイム  MASM32を1とする
                              [sec]      相対倍率
-----------------------------------------------------------------
PC(CeleronD2.66GHz).      MASM32.     0.7828         1.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      Visual C++    2.821          3.604
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      JavaScript    7.772         9.928
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      DarkBASIC   20.853         26.638
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nexus7(Tegra3)1.3GHz      JavaScript.   36.48         46.601
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
iPhone4S(Cortex-A9)800MHz JavaScript.   36.521         46.654
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      AGK       65.423         83.575
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      Basic4GL.   285.703       364.975
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nexus7(Tegra3)1.3GHz      AGK.      320.187      409.01
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      99BASIC.   1532.0         1957.0
-----------------------------------------------------------------
2013/04/07(日) 16:37:39.25
まだやってんのかよもういいから
2013/04/07(日) 16:58:40.28
>>517-518
この先も続けるつもりならコテつけてやってくれんかね
520デフォルトの名無しさん
垢版 |
2013/04/07(日) 17:11:45.40
[参考] ベンチマーク - FOR-NEXT10億回ループ ver1.03 page 1/2

(表1)ベンチマークテスト結果(数字が小さいほど速い)

                        MASM32 Visual Basic Visual C++ JavaScript DarkBASIC AGK Basic4GL 99BASIC
----------------------------------------------------------------------------------------------------------
PC(CeleronD2.66GHz)[sec]       0.7828    2.445    2.821      7.772    20.853    65.423  285.703  1532.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率        1.0     3.123    3.604      9.928    26.638     83.575  364.975  1957.0
----------------------------------------------------------------------------------------------------------
Nexus7(Tegra3)1.3GHz[sec].       -----    -----   -----     36.480      -----   320.18   -----   -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率.       -----    -----   -----     46.601      -----   409.01   -----   -----
----------------------------------------------------------------------------------------------------------
iPhone4S(Cortex-A9)800MHz[sec]  -----    -----   -----     36.521      -----   (※注)  -----   -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率        -----    -----   -----     46.654      -----   (※注)  -----   -----
----------------------------------------------------------------------------------------------------------
(※注)iPhone版AGKターゲットエミュレーターはビデオストリームのため除外。
521デフォルトの名無しさん
垢版 |
2013/04/07(日) 17:12:41.22
[参考] ベンチマーク - FOR-NEXT10億回ループ ver1.03 page 2/E

(表2)ランキング表(数字が小さいほど速い)

                    開発環境     タイム  MASM32を1とする
                              [sec]      相対倍率
PC(CeleronD2.66GHz).      MASM32.     0.7828         1.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      Visual Basic.   2.445          3.123
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      Visual C++    2.821          3.604
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      JavaScript    7.772         9.928
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      DarkBASIC   20.853         26.638
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nexus7(Tegra3)1.3GHz      JavaScript.   36.48         46.601
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
iPhone4S(Cortex-A9)800MHz JavaScript.   36.521         46.654
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      AGK       65.423         83.575
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      Basic4GL.   285.703       364.975
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nexus7(Tegra3)1.3GHz      AGK.      320.187      409.01
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      99BASIC.   1532.0         1957.0
2013/04/07(日) 17:22:27.36
チューリング完全がなんとか言ってた頭のおかしい人か
しょうがねえからワードであぼーんすっかな
523デフォルトの名無しさん
垢版 |
2013/04/07(日) 17:40:27.32
[参考] ベンチマーク - FOR-NEXT10億回ループ ver1.04 page 1/2

(表1)ベンチマークテスト結果(数字が小さいほど速い)

                        MASM32 Visual  Visual  Visual  Java   Dark   AGK   Basic4GL 99BASIC
                              Basic  C++   C#   Script  BASIC
----------------------------------------------------------------------------------------------------
PC(CeleronD2.66GHz)[sec]       0.7828  2.445  2.821   3.973   7.772  20.853  65.423  285.703  1532.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率        1.0   3.123  3.604   5.076   9.928  26.638   83.575  364.975  1957.0
----------------------------------------------------------------------------------------------------
Nexus7(Tegra3)1.3GHz[sec].       -----   -----  -----  -----  36.480 -----   320.18   -----   -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率.       -----   -----  -----  -----  46.601 -----   409.01   -----   -----
----------------------------------------------------------------------------------------------------
iPhone4S(Cortex-A9)800MHz[sec]  -----   -----  -----  -----  36.521 -----   (※注)  -----   -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率        -----   -----  -----  -----  46.654 -----   (※注)  -----   -----
----------------------------------------------------------------------------------------------------
(※注)iPhone版AGKターゲットエミュレーターはビデオストリームのため除外。
524デフォルトの名無しさん
垢版 |
2013/04/07(日) 17:40:57.94
[参考] ベンチマーク - FOR-NEXT10億回ループ ver1.04 page 2/E

(表2)ランキング表(数字が小さいほど速い)

                    開発環境     タイム  MASM32を1とする
                              [sec]      相対倍率
-----------------------------------------------------------------
PC(CeleronD2.66GHz).      MASM32.     0.7828         1.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      Visual Basic.   2.445          3.123
PC(CeleronD2.66GHz).      Visual C++    2.821          3.604
PC(CeleronD2.66GHz).      Visual C#      3.973       5.076
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      JavaScript    7.772         9.928
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      DarkBASIC   20.853         26.638
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nexus7(Tegra3)1.3GHz      JavaScript.   36.48         46.601
iPhone4S(Cortex-A9)800MHz JavaScript.   36.521         46.654
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      AGK       65.423         83.575
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      Basic4GL.   285.703       364.975
Nexus7(Tegra3)1.3GHz      AGK.      320.187       409.01
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      99BASIC.   1532.0         1957.0
-----------------------------------------------------------------
525─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
垢版 |
2013/04/07(日) 17:50:32.98
んじゃな♪(ペロリ♪”
2013/04/07(日) 18:22:44.81
>>514
いや、傾向としては、そういう速い処理は差がつきやすいけど、IOが
絡んだ処理のように明らかに遅い処理はほとんど差がないってのが
一般的な傾向じゃね?
2013/04/07(日) 20:57:06.03
どんだけレベル低いんだよ・・・
2013/04/08(月) 02:47:37.49
>>17
いわっちだったらあり得る
2013/04/08(月) 05:12:48.38
そらバルーンファイトはそうだろうけどよ
2013/04/08(月) 06:35:57.61
>>515
っていうか最適化によってはループせず変数に最終値が直接代入されて終わるレベルまで展開されかねない。
JITだと一巡回しきるまでループ結果を展開できないけど、事前コンパイルだとコンパイル時にループ回して結果確定できるからコンパイラ使うほうが強くね?
・・・まぁVCとかが遅く出てるようだから最適化を切った無意味な比較っぽいが。

>>522
実際試してみたら(どのJSエンジンかは知らんけど)JavaScriptの遅さに仰天してアセンブラ信者に転向したんだろうな。
takやtaraiを覚えたら関数型言語に転向しそうだ。
2013/04/08(月) 14:40:02.55
JSは変数スコープがキモイ
2013/04/08(月) 15:02:35.47
JSの変数スコープが理解できないやつはわりと頭悪い
2013/04/08(月) 20:40:42.93
typoしても黙ってるとかタチ悪すぎ
VBAですらOption Explicit必須だというのに
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況