最速スクリプト言語決定戦!

1デフォルトの名無しさん
おまいら、そろそろ最速スクリプト言語がどれなのか決定しませんか?
最初のお題は「たらいまわし関数」でGO
Haskell
3デフォルトの名無しさん:04/01/25 11:08
Lazyなやつは反則
言語仕様的にはRubyでしょ。
どこかのコピペにもあったけど、新しいだけあって
他の言語を凌駕してる。
RubyはPythonやPerlに負けてなかったか?
http://www.bagley.org/~doug/shootout/bench/ackermann/
Rubyは言語仕様が基地外じみていることが賞賛されるのに、
C#は言語仕様がJavaより複雑だとして非難されている。
これはつまり、Ruby信者とJava厨の声が大きいということでしかない。
そういう基地外の妄想を真に受けないこと。
8デフォルトの名無しさん:04/01/25 11:24
おまいら、速さを語って下さい。
本当に早さではなく速さなのか?
だったら語ることは何もない。
10デフォルトの名無しさん:04/01/25 11:41
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
11デフォルトの名無しさん:04/01/25 11:42
>>9
スクリプトの実行速度比較。
Rubyは1.6.8だから遅い。1.8は速い、と言っている
信者も居るので、おまいら実測で語って下さい、と。
Ocaml
>>6
これ「たらいまわし」じゃないし。
14たらいまわし関数:04/01/25 11:51
int tarai(int x, int y, int z)
{
if (x <= y) return y;
return tarai(tarai(x - 1, y, z),
tarai(y - 1, z, x),
tarai(z - 1, x, y));
}
開発の期間、実行開始までの時間、付属ライブラリの効率、
何が最速なんだか。
>>1
スクリプト言語ってのはお手軽に処理を自動化するためのもんであって
よっぽどの事がない限り速度なんて問題にならんけどな。
>>14
それ再帰。
このスレは実行速度のみでスクリプト言語を評価するスレです。
それなら圧倒的にperlだな。
唯一parrotが動く言語だから
20デフォルトの名無しさん:04/01/25 12:04
開発速度
・速い … Perl
・遅い … C
実行速度
・速い … C
・遅い … Perl

以上。~終了~
21デフォルトの名無しさん:04/01/25 12:04
Cはスクリプト言語じゃねぇっす。
Lispは?
231:04/01/25 12:12
LispはOK。
Schemeも参戦可。
ただしネイティブコンパイルは認めない。
もう>>19で結論は出てるだろ
さっさと終了しろ。
25デフォルトの名無しさん:04/01/25 12:19
どう考えてもschemeだな。
>>24
これだからperl厨は。

マシン語。終了。
Gaucheマンセー
>>17
こいつ何言ってんの?
Perl で Inline:::C 使うのが早いんじゃない。
実行速度が必要ならスクリプト言語使わんつーの。
>>29
オーバーヘッドがものすごかったり。
31デフォルトの名無しさん:04/01/25 17:39
Ocamlなのは明らかなのにこれ以上何を語るの?
Perl最強!
この板caml信者多いな。学生だらけってことか。
34デフォルトの名無しさん:04/01/25 17:56
ネイティブコンパイル不可なのでOcamlが本当に最速になるかどうか・・・。
The Great Computer Language Shootoutのページには出てない早い処理系が
ある言語もあるしね。

ていうか>>1なんか無視してコンパイルありで最速言語の話にしよう。
36デフォルトの名無しさん:04/01/25 17:59
>>35
機械語
で終了。
機械語なんて書けねえだろ!高級言語オンリー!
つーわけでC。

*******************************************

           終       了

*******************************************
38デフォルトの名無しさん:04/01/25 18:26
Cは低級言語。



***********よって再開*************
高級言語の定義すら知らない馬鹿が一匹
>>39
いや、あってるだろ。

>>38にとってCは理解しがたいコンピュータよりの言語だと言うだけの話だ。

そしてそれは一般人から見れば正しい見解であると思うが。
一般人って非プログラマのこと?
そんな視点に高級低級の定義を任せるのか?
>>38-39
新説を述べるときは説明責任を果たせ。
431:04/01/25 21:02
おまいら、スクリプト言語の速さについて語ってください。
Faster than a bullet
>>41
それじゃネタ振りとして>>6のサイトにある benchmark を最新の実装でテスト
して報告して下さい。話はそれから。
461:04/01/25 21:27
じゃ、>>41さん、おながいします。

私の見たい対戦カード、

 ピュアOOPL頂上対決:Ruby vs. Smalltalk
 関数型真の頂上対決:Ocaml vs. Scheme (←SchemeはGaucheで)
 次世代VM対決:Parrot vs. RubyVM (まだ無理か)

 
| ピュアOOPL頂上対決:Ruby vs. Smalltalk
Smalltalk

| 関数型真の頂上対決:Ocaml vs. Scheme (←SchemeはGaucheで)
Haskell

|次世代VM対決:Parrot vs. RubyVM (まだ無理か)
どっちも vaporware なので引きわけ
>>46
> 関数型真の頂上対決:Ocaml vs. Scheme (←SchemeはGaucheで)
Haskell とか Clean では無い訳ね?
491:04/01/25 21:31
>>48
Lazyな奴は階級が違うという認識で・・・。
501:04/01/25 21:33
じゃあエキジビジョンマッチ:Haskell vs. Cleanもキボンヌ。
5145:04/01/25 21:46
あー間違えた。
s/>>41/>>43/
>>51
エスケープしろよ・・・
531:04/01/25 22:10
え、(;´ Д`)オレ?
仕方ないのでちっとも最新の実装じゃないが晒す。

tarai(12,6,0)の結果
(Rubyを1.0とした時の相対速度。小さいほど速い。)

Python2.2.2: 0.50
Ruby1.6.8:  1.00
Perl5.8.1:  1.12
CLISP2.29:  1.80



・・・・・・Pythonマンセー。
12 6 0でたらい回すと俺のperlはコアダンプ吐いて死ぬ。
56デフォルトの名無しさん:04/01/26 00:30
>>55
6 3 0でたらいまわせば?
なあ遅延評価とかいうのが鍵になってるそうだが、
そうするとはしょりのうまいスクリプトが一番早くなるのか?

まあ、それも早さなんだろうけど…
あらゆる場面で、ではないんだよな。
59デフォルトの名無しさん:04/01/26 00:43
pikeっつうのもある

http://pike.ida.liu.se/
601:04/01/26 00:58
>>57
小細工なしの素直なコードで速度を競うのが一応このスレの趣旨。
>>60
初めて聞いた。
62名無しさん@Emacs:04/01/26 07:06
これをみると Lua ≒ Io < Perl < Python だな。
http://www.iolanguage.com/comparisons/Performance.html
Hspは?
64デフォルトの名無しさん:04/01/26 09:00
>>63
HSPでもいいけど
そろそろPerlに移行したらどうだい?
HSP習得できるなら
CでもC++でも習得できると思うぞ。
言語は言われてるほどそんなに変わらないよ。
えーっとスレを精読した結論として、WSHが最速っていうことでo.k?
66BAR:04/01/26 17:45
BFだ! ハード実装されたBFが一番早い!!
http://pc2.2ch.net/test/read.cgi/tech/1036013915/
時代はシェル・スクリプト・アクセラレーター
アセより読みずらいBF、WhiteSpace等は無しでおねがいします
とりあえず、ここで語ってる人って、
それぞれの言語使った事あるのかな?
漏れはPerlもHSPもRubyも使ったけど
一番、(・∀・)イイ!! と思った言語は、

 l i n g o

・・・ああ、でも最速ではないですね。ゴメソ
Pikeなら使ってるが、正直英語のドキュメントすらかなり不足してる上に、
日本語の文献となると0ではない、つーレベルなんで勧めはしないな。
あと、正規表現まわりはかなり貧弱。

まぁ、画像まわりのライブラリが異常に強力だったりするが。
701:04/01/26 19:39
おまいら、マターリ話してないで、たらいまわしてください。
だったらテメーがコード書けや。人任せにすんなヴォケ。
ここは、1がぜんぶやるスレです
731:04/01/26 20:15
>>71
( ´ ∀`)>>54は漏れ・・・・。

>>72
まだ自作自演しなきゃならないのか・・・。
ghc のある Haskell が最速ってことで。
変わったとこで Strongtalk (強い型付きの Smalltalk )

Tarai >> x: x <Int> y: y <Int> z: z <Int> ^ <Int>
 x <= y ifTrue: [^ y].
 ^ self
  x: (self x: x-1 y: y z: z)
  y: (self x: y-1 y: z z: x)
  z: (self x: z-1 y: x z: y)

Time millisecondsToRun: [Tarai x: 12 y: 6 z: 0]

=> 0.27 / (ruby 1.8.0 (2003-08-04) [i386-cygwin])
>>75
一桁間違えた…。

=> 0.027 / (ruby 1.8.0 (2003-08-04) [i386-cygwin]
>>75
対Ruby(1.8)比で0.27か。
Strongtalkって知らなかったけど結構速いね。
なに?0.027ですと?
爆速ですな。
Shootoutのページの数値から類推するにStrongtalkはOcamlと
いい勝負しそうな予感。
既出だけど比較のため。
GNU CLISP 2.31 (2003-09-01) (Common Lisp インタープリタ)

(defun tarai (x y z)
 (if (<= x y)
  y
  (tarai
   (tarai (1- x) y z)
   (tarai (1- y) z x)
   (tarai (1- z) x y))))

(time (tarai 12 6 0))

=> 1.8 / (ruby 1.8.0 (2003-08-04) [i386-cygwin])
Gauche 0.7.3 (Scheme インタープリタ)

(define (tarai x y z)
(if (<= x y)
  y
  (tarai
   (tarai (- x 1) y z)
   (tarai (- y 1) z x)
   (tarai (- z 1) x y))))

=> 0.45 / (ruby 1.8.0 (2003-08-04) [i386-cygwin])
ruby 1.00 (ruby 1.8.1 (2003-12-25) [i386-mswin32])
gosh 0.31 (gauche 0.7.1)
petite 0.14 (petite chez scheme 6.0a)
VisualWorks 7.1 (XEROX Smalltalk-80 の正統な継承者)

Tarai class >> x: x y: y z: z
 x <= y ifTrue: [^ y].
 ^ self
  x: (self x: x-1 y: y z: z)
  y: (self x: y-1 y: z z: x)
  z: (self x: z-1 y: x z: y)

Time millisecondsToRun: [Tarai x: 12 y: 6 z: 0]

=> 0.02 / (ruby 1.8.0 (2003-08-04) [i386-cygwin])


Squeak 3.6 (XEROX Smalltalk-80 の派生物の Apple Smalltalk の派生物)
(VisualWorks とコード同じ)

=> 0.2 / (ruby 1.8.0 (2003-08-04) [i386-cygwin])

もっさりとした印象の VisualWorks が Strongtalk 以上のパワーを発揮したのは
意外でした。Squeak はやはり、Smalltalk 勢の中ではへたれてる。
(define *memorize-table* '())
(define (memorize proc)
 (lambda args
  (let ((x (assoc args *memorize-table*)))
   (if x (cdr x)
     (let ((result (apply proc args)))
      (set! *memorize-table* (cons (cons args result) *memorize-table*))
      result)))))

という感じのマクロ用意して

(define tarai
 (memorize ;; ←これ追加
  (lambda (x y z)
   (if (<= x y) y
    (tarai
     (tarai (- x 1) y z)
     (tarai (- y 1) z x)
     (tarai (- z 1) x y))))))

(tarai 12 6 0) ;; => 12
でほぼゼロになる。
まあ、メモ化は無しだよね。
マクロじゃなくて関数だった。
memoizeは参考記録ということで。
Smalltalkって結構速いなぁ。見直した。
Self 4.1.5

_AddSlots:
(| taraiX: x Y: y Z: z = (
x <= y ifTrue: [^ y].
^ taraiX: (taraiX: x-1 Y: y Z: z)
Y: (taraiX: y-1 Y: z Z: x)
Z: (taraiX: z-1 Y: x Z: y)) |)

[taraiX: 12 Y: 6 Z: 0] time

=> 0,45 / (ruby 1.8.1 (2003-12-25) [powerpc-darwin])
>83
Squeak はともかくVisualWorksやStrongtalk はネイティブ化してるでそ
>>88
てへっ。
Lua 5.0 Copyright (C) 1994-2003 Tecgraf, PUC-Rio

function tarai(x, y, z)
if x <= y then return y else return tarai(
tarai(x - 1, y, z), tarai(y - 1, z, x), tarai(z - 1, x, y)) end end

=> 0.30 / ruby 1.8.1 (2003-12-25) [i386-mswin32]
∩(´・ω・`)∩たらいまわせ!
Objective Caml version 3.07+2

let rec tarai x y z =
  if x <= y then y
  else tarai (tarai (x - 1) y z) (tarai (y - 1) z x) (tarai (z - 1) x y);;
Printf.printf "%d\n" (tarai 12 6 0)

=> 0.036 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

Gauche scheme interpreter, version 0.7.3
(define (tarai x y z)
  (if (<= x y)
    y
    (tarai (tarai (- x 1) y z)
      (tarai (- y 1) z x)
      (tarai (- z 1) x y))))
(tarai 12 6 0 )

=> 0.097 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

Gaucheの結果が>>82とかなり違うなぁ。
噂に違わずOcaml速えぇ。
ところで、

ruby 1.8.1 (2003-12-25) [powerpc-darwin]
=> 0.99 / ruby 1.6.8 (2002-12-24) [powerpc-darwin7.0]

でした。
たらいまわし関数については1.6と1.8の実行速度に大きな差はないようだ。
9482:04/01/27 22:02
参考までに(ruby 1.8.1 (2003-12-25) [i386-mswin32] )

自作Cインタプリタ 0.029 (直接ネイティブコードに翻訳)
VC7         0.011  (/O2オプションのみ)

結局、0.1より下回るにはJITかネイティブへ変換するしかなさそうで、
VM駆動系は0.3~0.2なら速い部類、Cのswitch-caseを使った実装では
0.2辺りが多分限界じゃないかと思う。ネイティブ変換しない形で速度を
追求するならforthやpetite-scheme、qscheme等が採用している、
threaded codeの形式にするしかないんじゃないか?
とか書いてたら、

>>92
>Gauche scheme interpreter, version 0.7.3
>=> 0.097 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
なんでこんなに違いが・・
OS・環境にかなり左右されるのか、それとも7.1->7.3で何かあるのか。
9592:04/01/27 22:30
>>81はGauche0.7.3で0.45なのでバージョンよりも
プロセッサ(i386 vs PowerPC)の違いが大きいみたいだな。

>>92のOcamlはネイティブコンパイルしてないし、
GaucheもVMだから、PowerPC系では早いVMなら
0.1を切ることができるみたいなり。

ついでにForthでやってみた。
gforth 0.6.2
=> 0.05 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

VM系ではやはりOcamlが最速か?
int tarai(int x, int y, int z)
 {
 if (x <= y) return y;
 return tarai(tarai(x - 1, y, z),
         tarai(y - 1, z, x),
         tarai(z - 1, x, y));
 }
丶────────────v──────────
   HEY! YO! slash !!
                ∧_∧  sh !! sh !!
          bin !   (´∀` )     
            ____○___つヾ__
          /⊂二⊃/†::† /⊂二⊃ ./|
       | ̄::: ̄.| ̄ ̄ ̄| ̄ :::  ̄ | .|
       | TARAI | ̄ ̄ ̄|MAWASHI.| .|
CLISP の結果ってバイトコンパイルしたやつ? VM の速度比較なら VM が
実行するバイトコードで計測してあげないと。実際、ロード時に勝手に
コンパイルするオプションがあるわけで、コンパイルした結果つかわない
と気の毒な気がするんだが…。(Ruby が無いので自分では比較できん)
9982:04/01/27 23:29
>>95
自分もocaml入れて試してみた。
http://caml.inria.fr/distrib/ocaml-3.07/ocaml-3.07pl2-win-msvc.exe
ここのバイナリからocaml.exe
=> 0.12 / ruby 1.8.1 (2003-12-25) [i386-mswin32]

petite-schemeより少し速い、でもPowerPC程の差はなかった。
やっぱりOSかプロセッサに依存してるみたいね。
つーかRubyがよっぽどヘタる実装なのか。
それにしてもOCaml速えーな。
実行時バイトコードコンパイルするスクリプト処理系だとRuby比0.2ぐらいはでるってことは、
RubyもVM実装したら最大5倍速くなる可能性があるってことか?

ちなみにPike(7.4.31-Win32-Windows-NT-5.1.2600-i86pc)
=> 0.159 / ruby 1.8.1(2003-12-25)[i386-mswin32]
>>99
こんなのもある。
プロセッサごとにdirect,indirect,switchなどのthreaded VMの性能比較。

http://www.complang.tuwien.ac.at/forth/threading-v1/
http://www.complang.tuwien.ac.at/forth/threading/

Pentium系プロセッサはdirect threadedにしてもあまりVM性能があがらないのかな。
CLISPをコンパイルしてやってみた。

GNU CLISP 2.29 バイトコードコンパイル済み
=> 0.14 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

かなり速くなるね。
Rubyに 勝ったら コイツで 報告♪
   Rubyに 負けたら タライが 落ちる♪
丶────────────v──────────
   HEY! YO! slash !!
              ∧_∧     sh !! sh !!
        bin !   (´∀` )     
            ____ゝ つ_つソ____
          /⊂二⊃)).†::†../⊂二⊃))/|
       | ̄::: ̄.| ̄ ̄ ̄| ̄ :::  ̄ | .|
       | TARAI | ̄ ̄ ̄|MAWASHI.| .|
104102:04/01/27 23:53
ちなみにロード時コンパイルオプションでやってみると
0.15 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
でした。
見直したぜ、CLISP。
10582:04/01/28 00:04
自分もCLISP試してみた。(clisp-2.32-win32.zip)

(defun tarai (x y z)
 (if (<= x y) y
  (tarai
   (tarai (- x 1) y z)
   (tarai (- y 1) z x)
   (tarai (- z 1) x y))))
(compile 'tarai) ;; ←これだけで良い?
で、
=> 1.8 / ruby 1.8.1 (2003-12-25) [i386-mswin32]
だった。
ppcは不思議な石だな・・

ところで、taraiだけベンチって意味あるのか疑問に思えてきたが。
10699:04/01/28 00:06
ヤパーリなぁ。Lisp の中では遅いと言われているけどいくらなんでもそこまで
遅いとは思わなかったんで。もつかれさまですた。
10782:04/01/28 00:08
失礼
>>105のCLISPの1.8は0.18間違いでした。
108104:04/01/28 00:08
ちなみに
Petite Chez Scheme Version 6.9b
0.089 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

ですた。

>>105
漏れのは起動時に-Cオプションをつけただけです。
BrainFuckでtaraiって書けるの?
Python 2.3.3 で試した。

=> 0.416 / ruby 1.8.1 [i386-cygwin]

ですた。まぁまぁの結果。
gforth-fast 0.6.2

: tarai { x y z }
  x y <=
  if
    y
  else
    x 1- y z recurse
    y 1- z x recurse
    z 1- x y recurse recurse
  then ;
12 6 0 tarai . cr bye

=> 0.02 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

キタ━━━━━━(゚∀゚)━━━━━━!!
丶────────────v──────────
              |l|___ll||
            |l ./カナダライ\
             .|/ ̄ ̄ ̄\| <<
             \__∧/从
        GON !   (´Д` ;)
            ____γ___つソ___
          /⊂二⊃).∪::†./⊂二⊃))/|
       | ̄::: ̄.| ̄ ̄ ̄| ̄ :::  ̄ | .|
       | TARAI | ̄ ̄ ̄|MAWASHI.| .|
カナダドライ
114デフォルトの名無しさん:04/01/28 17:25
本命のHaskellが出てないね。
他はだいたい出揃ったかな。
Hspは?
・・・ここにおいておきますね。

PHP 4.3.2 Zend Engine v1.3.0

<?php
function Tarai($x, $y, $z){
 if($x <= $y) return $y;
 return Tarai(Tarai($x - 1, $y, $z), Tarai($y - 1, $z, $x), Tarai($z - 1, $x, $y));
}
$r = Tarai(12,6,0);
print "Tarai(12,6,0): $r\n";
?>

1.7 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
もうたらいまわしはいいよ。
119デフォルトの名無しさん:04/01/29 17:01
C++インタプリタとかいうCINTとかROOTとか
試して欲しいなあ。
藻前がやれ>119
>>111
forthはthenの位置とかrecurseがキモイね
相互再帰とかどうなんの?
>>120
やりました。スタックオーバーフローで死にました。


再帰じゃないテスト無いの?
Nested Loops
http://www.bagley.org/~doug/shootout/bench/nestedloop/

これなんてどうだろう?
N = 16 で。

# ruby
n = 16
x = 0
n.times do
n.times do
n.times do
n.times do
n.times do
n.times do
x += 1
end
end
end
end
end
end
puts x
>>119
UnderC(1.2.9w)(Win32)
=> 0.266 / ruby 1.8.1(2003-12-25)[i386-mswin32]

…マイナーすぎか。
>>123
| n x |
n := 16.
x := 0.
n timesRepeat: [
 n timesRepeat: [
  n timesRepeat: [
   n timesRepeat: [
    n timesRepeat: [
     n timesRepeat: [x := x + 1]]]]]].
^ x

Squeak 3.6
 => 0.58
/ ruby 1.8.1 (2003-12-25) [i386-cygwin]
Strongtalk 1.1.1
 => 0.24 / 〃
VisualWorks 7.1
 => 0.03 / 〃
>>123 マクロ展開で時間を無駄遣いしてるがまー誤差だろ。
わざわざ Ruby インスコしちまったぜ。
(defmacro nest (N nest-level &body body)
(if (<= nest-level 1)
`(loop repeat ,N do ,@body)
`(loop repeat ,N do (nest ,N ,(1- nest-level) ,@body))))

(defun test (&aux (x 0))
(nest 16 6 (incf x))
(print x))

(test)

=> 0.165 / ruby 1.8.1 (2003-12-25) [i386-freebsd4.9]
何LISP?
128126:04/01/30 01:05
>>127 スマソ一番大事な事を書き忘れたな…。Common Lisp 界最遅の CLISP タソです。
他のはコンパイラばっかなんで参戦できねー。
CMUCL の PYTHON なら良いんじゃない?
うちは Mac なので無理だけど。
CMUCL の Python は ネ イ テ ィ ブ コ ー ド コ ン パ イ ラ

php3,4,5 てどうよ。
>>126 ユーザビリティの低いクソコードじゃ速度で勝ってもしょうがないね
Self 4.2

_AddSlots: (|
 nestedLoops: n = (
  | x <- 0 |
  n do: [
   n do: [
    n do: [
     n do: [
      n do: [
       n do: [x: x+1]]]]]].
  ^ x) |)

[nestedLoops: 16] time

=> 0.055 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
CLISP 2.32
マクロを使わずに命令的にそのまま。

(defun nestedLoops (n)
 (let ((x 0))
  (loop repeat n do
  (loop repeat n do
  (loop repeat n do
  (loop repeat n do
  (loop repeat n do
  (loop repeat n do (incf x)))))))
 
x))

(time (nestedloops 16))
=> 5.05 / ruby 1.8.1 (2003-12-25) [i386-cygwin]

(compile 'nestedloops)
(time (nestedloops 16))

=> 0.19 / ruby 1.8.1 (2003-12-25) [i386-cygwin]
>>130
そうだったっけ? スマソ。
CMUCL はインタープリタ積んでるはずなんで、それ使ったラッテコとね。

ラッテコって何だろう・・・。
このスレのためにrubyインストールしたぜ。
Hspは?
自分でやれよ
spidermonkey

function tarai(x, y, z) {
   if(x<=y) return y;
   return tarai(tarai(x-1, y, z),
   tarai(y-1, z, x),
   tarai(z-1, x, y));
}
print(tarai(12,6,0));

=> 3.50 / ruby 1.8.1 (2003-12-25) [i386-win32]
>>6
mawkってperlより全然速いんだね。awkファンとして嬉しい。
perlより遅いという評価が定着したのはgnuのせいだ。
Objective Caml version 3.07+2

let n = 16
let rec loopF x = function 0 -> x | i -> loopF (x+1) (i-1)
let rec loopE x = function 0 -> x | i -> loopE (loopF x n) (i-1)
let rec loopD x = function 0 -> x | i -> loopD (loopE x n) (i-1)
let rec loopC x = function 0 -> x | i -> loopC (loopD x n) (i-1)
let rec loopB x = function 0 -> x | i -> loopB (loopC x n) (i-1)
let rec loopA x = function 0 -> x | i -> loopA (loopB x n) (i-1);;
Printf.printf "%d\n" (loopA 0 n)

=> 0.054 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
一応CLISPとも比較
GNU CLISP 2.29 (-Cオプション)

(defmacro nest (N nest-level &body body)
(if (<= nest-level 1)
`(loop repeat ,N do ,@body)
`(loop repeat ,N do (nest ,N ,(1- nest-level) ,@body))))

(defun test (&aux (x 0))
(nest 16 6 (incf x))
(print x))

(test)

=> 0.13 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
さらにgforthとも・・・。
gforth-fast 0.6.2

16 value n
: nestedloop
  0 n 0 do
    n 0 do
      n 0 do
        n 0 do
          n 0 do
            n 0 do
              1+
            loop
          loop
        loop
      loop
    loop
  loop
;
nestedloop . cr

=> 0.018 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
lua

n = 16
x = 0
for i = 1, n do
for j = 1, n do
for k = 1, n do
for l = 1, n do
for m = 1, n do
for o = 1, n do
x = x + 1
end
end
end
end
end
end
print(x)


=> 0.228 / ruby 1.8.0 (2003-08-04) [i386-cygwin]
http://sheepman.parfait.ne.jp/20030418.html#p05
これのruby版が早過ぎるんだが、どういうことなんでしょう
ネエティブコンパイルしたのに勝ったんだが・・・
引数でかくすればきっと負けてくれるでしょう。
くやしくて、ネエティブコンパイラの方でも、同じことやらせたらruby版に勝てた
ruby版より行数膨らみすぎたけど。

遅延評価の一旦を垣間見た気がした
>>145
Ruby で速いなら、ほかのではもっと速い?

Squeak 3.6

Tarai class >> x: x y: y z: z
 x value <= y value ifTrue: [^ y value].
 ^ Tarai
  x: [Tarai x: [x value - 1] y: y z: z]
  y: [Tarai x: [y value - 1] y: z z: x]
  z: [Tarai x: [z value - 1] y: x z: y]

Time millisecondsToRun: [Tarai x: [64] y: [32] z: [0]]

=> 0.001 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

速かった…(藁
>>148
yの評価を端折ればさらに3倍強(偶然?)。たぶんrubyも一緒。

Tarai class >> x: x y: y z: z
 | yValue |
 x value <= (yValue _ y value) ifTrue: [^ yValue].
 ^ Tarai
  x: [Tarai x: [x value - 1] y: y z: z]
  y: [Tarai x: [yValue - 1] y: z z: x]
  z: [Tarai x: [z value - 1] y: x z: y]
速度じゃないけど nested loop のソースを見ると >>142 のコードがイイね。
LISP カコイイ。
Python 2.3.3 (2003-12-18) [i386-mswin32]

from itertools import repeat
n = 16
x = 0
for i in repeat(None, n):
  for i in repeat(None, n):
    for i in repeat(None, n):
      for i in repeat(None, n):
        for i in repeat(None, n):
          for i in repeat(None, n):
            x += 1
print x

=> 0.677 / ruby 1.8.1 (2003-12-25) [i386-mswin32]

微妙・・・
>>150
マクロがないので、悔し紛れにクロージャで(^_^;)

VisualWorks 7.2nc

| nestedLoops x |
nestedLoops := [ : n : nestLevel : proc |
 nestLevel = 0
  ifTrue: [proc]
  ifFalse: [
   nestedLoops
    value: n
    value: nestLevel-1
    value: [n timesRepeat: proc]]].
x := 0.
(nestedLoops value: 16 value: 6 value: [x := x + 1]) value.
^ x

print it時にいろいろ叱られた末、速度も200%増しでショボーン
かえって分かりにくいし…
>>152
>>152
Squeakはブロックで再帰呼び出しができないので、メソッドで

Integer >> levels: n timesRepeat: aBlock
 self < 1 ifTrue: [↑ aBlock].
 ↑ self-1 levels: n timesRepeat: [n timesRepeat: aBlock]

| x |
x ← 0.
(6 levels: 16 timesRepeat: [x ← x + 1]) value.
↑ x

こちらはなぜかちょびっと速くなる。
154R..y:04/02/04 17:05
>>152-153
マクロなど羨しがるな。みっともない。同じオブジェクト指向な言語として恥ずかしいぞ。
「ループを 6 回繰り返すコードを書け」と書ける事になんの意味があると言うのだ。
オブジェクト指向は構文抽象よりもはるかに高尚でエレガントなのだ。
マクロは使用法によらず常に悪である。なぜならば、マクロはつまりユーザビリティが低いのだ。
マクロを使うとコードはわかりにくくなるからだ。
馬鹿にはね。
def nest(n, nest_level, &body)
return body if nest_level < 1
nest(n, nest_level-1) {n.times(&body)}
end

x = 0
nest(16, 6) {x += 1}.call
puts x
それは「ループを書くコード」じゃなくてただの「ループするコード」だって
わかって書いてるの?どうでもいいけど Ruby が良いのはもう十分理解ましたので
勘弁してください。
なんでちょっとでも言語ネタが出ると Ruby の話になるんだろう。
だれかマイナー言語のベンチマークで本題に戻して~
>>150
まくろって、つおい?

: nest { n d c }
  d 0 do
    n postpone literal 0 postpone literal postpone do
  loop
  c compile,
  d 0 do
    postpone loop
  loop
;

: nestedloop 0 [ 16 6 ' 1+ nest ] ;

nestedloop . cr


=> 0.010 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

16が即値で展開されるためさらに速くなった。
>>159
gforth-fast 0.6.2
でつ。
∩(´・ω・`)∩アゲトキマスネ
(´・ω・`)アガッテナイシ
163150:04/02/04 19:52
荒れてしまって申し訳ない。 >>159 さん自分は厨なので LISP も Forth もちゃんと触った
事はないので聞かれても…
>>151

def nested(n):
    x = 0
    i_r = range(n)
    for a in i_r:
        for b in i_r:
            for c in i_r:
                for d in i_r:
                    for e in i_r:
                        for f in i_r:
                            x += 1
    print x

じゃ駄目なの?

Python 2.3
=> 0.370 / ruby 1.8.1 (2003-12-25) [i386-mswin32]
165151:04/02/04 20:28
>>164
おいらが浅はかだっただけでつ(´・ω・`)
gforthはnative並の速さだな
もしかして実行時コンパイル?
>>166
コンパイル時実行、
・・とForth界隈では呼ばれています。マクロじゃなくて。
でもこの「コンパイル」っていうのは、ForthではVMコード
生成のことを言ってるわけで、ネイティブコード生成ではないです。
gforth自体はVMで動作してます。

168デフォルトの名無しさん:04/02/04 21:24
Forth ってすげぇ~ VM 動作でこの速度かよ!! 恥ずかしながら
てっきり実行時にコンパイルしてるもんだと思ってた…

;; CMUCL で型指定付きでコンパイル
* (time (test))
; Evaluation took:
; 0.03 seconds of real time
; 0.023329 seconds of user run time
; 0.0 seconds of system run time
; 32,939,360 CPU cycles

;; インタプリタ起動時間込みでこれ.
$ time gforth-fast nest.f -e bye
16777216
gforth-fast nest.f -e bye 0.27s user 0.00s system 99% cpu 0.275 total
forth スゴイ
マジオススメ
と思ったけど日常生活で使うにはやはり厳しい…
cmuclはネイティブコンパイラですね。
ForthだとbigForthがネイティブコンパイルできるんですが、
まあ、スレ違いということで。。。。
ディスコンパイルすればちゃんとVMとして残ってるのがわかる。
see nestedloop
: nestedloop
0 <4212491> <16> 0
DO 16 0
DO 16 0
DO 16 0
DO 16 0
DO 16 0
DO 1+
LOOP
LOOP
LOOP
LOOP
LOOP
LOOP ; ok

ただしプリミティブを見るとnativeコードになってる
see 1+
Code 1+
( $401ABB ) inc ecx \ $41
( $401ABC ) add ebx , # 4 \ $83 $C3 $4
( $401ABF ) jmp dword ptr FC [ebx] \ $FF $63 $FC
end-code

この最後の2行に注目すると、
( $401ABC ) add ebx , # 4 \ $83 $C3 $4
( $401ABF ) jmp dword ptr FC [ebx] \ $FF $63 $FC

direct threaderd codeという方法を使ってるのがわかる。(ebxがpcに相当)
綴り間違えた
s/threaderd/threaded/
173159:04/02/04 21:49
ちなみにgforth0.6以降は、

>New threaded code execution method: primitive-centric (allows the following),
>hybrid direct/indirect threaded (easier portability), with dynamic superinstructions
> (typical speedup on Athlon: factor 2).

と書かれていてprimitive-centricという新しい手法を使っているらしい。
(詳細不明。。)
正直、動的型な言語だとまず型チェックとか入るから
いきなりinc ecxとか実行でけるforthがうらやましい。
つーことはecx何某はスタックトップの演算ということかな。
(あんま知らないので間違ってたらすまそ)
ecxはレジスタらしいね。
スタックトップ(TOS)をレジスタに割り当てるのはVMの高速化の常法。
>>170
そうです。型指定しないと generic-function (bignum かもしれないんで)
呼んじゃうので forth より遅かったです。でも良く考えたら最適化コンパイラ
じゃ構造がかわっちゃうかもしんないから >>171 を見てもそもそも比較に
なんないっすね…。

void main() {
int n=16;
int x=0;
int a,b,c,d,e,f;
for (a=0; a<n; a++){
for (b=0; b<n; b++){
for (c=0; c<n; c++){
for (d=0; d<n; d++){
for (e=0; e<n; e++){
for (f=0; f<n; f++){
x++;
}
}
}
}
}
}
printf("%d\n", x);
}

cint
=> 0.32 / ruby 1.8.1 (2003-12-25) [i386-mswin32]
あ、今Hspで動作計測したんだけど
たぶん一番早いよコレ。マジすごすぎだわ。
諸事情によりくわしいことはいえないんだけどどれよりも早かった。ほんと。
かんじおべんきょうしろ。
あ、今BrainFuckで動作計測したんだけど
たぶん一番早いよコレ。マジすごすぎだわ。
諸事情によりくわしいことはいえないんだけどどれよりも早かった。ほんと。
Haskellをリクエストしている人がいたので参戦。
tarai (640, 320, 0)

module Main where
tarai :: Int -> Int -> Int -> Int
tarai x y z
  | x <= y  = y
  | otherwise = tarai (tarai (x - 1) y z) (tarai (y - 1) z x) (tarai (z -1) x y)
main = print $ tarai 640 320 0

ghc -O2 tarai.hs
./a.out  0.00s user 0.01s system 105% cpu 0.017 total

runhugs tarai.hs
runhugs tarai.hs  3.17s user 0.12s system 89% cpu 3.671 total
# やっぱりhugsは遅い。
ちなみに
http://sheepman.parfait.ne.jp/20030418.html#p05
のRuby版は(620, 320, 0)では終わらない。# 所詮偽物。

runhugsは起動だけで0.20秒ぐらいかかるから(12,6,0)で比べるのは
無意味。
>>181,182
>>49
>>183
そもそもGHCは実行ファイルはき出すコンパイラだし。
>>183
わかってるけど、最近Lazyが云々っていうレスが続いてたからね。
せっかくだから誰かCleanでHaskellに挑戦してくれ。
(´・ω・`)ホシュ
Cleanはネイティブコード吐くよ
GHC もネイティブコード吐くよ
㈱サンファイナンスです。
全国即日スピード融資。
東京都知事認可済みの消費者金融です。
まずはHPをご覧ください。
http://sunfaina.fc2web.com/


191デフォルトの名無しさん:04/03/02 22:14
スマン、たらいまわし関数って何?
まえ市役所に行ったらたらいまわしにされたけど、
それはおいといて、マジわからん。
>>191
>たらいまわし関数って何?

その「何?」って「何の役に立つのか?」って意味か?

・・・何の役にもたたんよ。
ちょうど市役所のたらいまわしシステムがベースです
たらいまわしの語源て何よ。
むかしむかし、タライを回す、おじいさんとおばあさんがいました。
みたいなお話キボンヌ。
つーか、たらいって何?
辞書引けカス。
>>192
「たらいまわし」は曲芸の名前。曲芸師が仰向けになって、足でタライを回す芸。
時には、二人の曲芸師がタライでキャッボールをすることもある。その様子が
役所などで「たらいまわし」そっくりな為。

なんか最近やけに他人の代わりに Google を使う事が多いような気がする。
こういう時代なのか・・・
たらい知らないやつがいるのか
芸人の上から降ってくるのが金(かな)だらい
真心ブラザーズの歌にもあるよね

あれは猿回しか
199デフォルトの名無しさん:04/03/04 00:17
たらい回し関数で計れる性能って関数呼び出しですかね?
200ゲトー
         ,、       ,、
     ,;''"";、 ! \     / ヽ,
( (  ( O ;, '   `''"''''"''   ゙;.
     ';,   !;            ;;
     ';、 ;;'    O    O  ;!  >>199はハムスター。
      ';, ';, *  ┌―┐  ,;
       ゙:、`:、      _ノ  ,.;'
        ヽ、       ,,: ヽ
           ';,.  r'⌒''"   ';,
          ,..;、., ヽ,,.     ';,,
          ノ。o。 ヽ  ゙"''‐''"   ';,
      ( (  ;' ○ ;;,!、        ;,      ;`';,
           `ー‐' -"''-;,,、     ;;i'"""ヽ、ノ ,;
                  ;;,     ,;;'⌒`:、,..,,;;''
                  ';,    ;;'
                   (,,_,,_,,ノ
次期 Ruby が最強スクリプトってことでまとまったな。
なんてったってRPGツクールに搭載だもんな
実績、性能、将来性、ユーザビリティ、オブジェクト指向の純粋性、
すべてにおいて次期 Ruby は最強というわけか。
>>203
*次期* かよ…。_| ̄|○ と、いちおうツッコンでおく。
きっとRuby 2.0はめっちゃ速いはずだよ
Ruby 2.0 は最強。他は負け組み。プププ。
次期Perl
次期PHP
に続いて、次期Rubyもあるんだな・・・。
磁気HSPマダァ~?
どの次期がいちばんはやいか競うスレはここでしょうか?
Slangが最強
>>210
アンインストールすると多くのディストリで不具合が起こったりするからな。最強だ。
>>211
それは最悪の間違いだろ。だいたい最速スレなんだから。
つまり今は遅いけど次期 Ruby の速度大幅アップにより
最速ということでファイナルアンサーだな。
今のところそれほど速くなる見込みは出てないけどね。
大丈夫。
信者が実行すると、脳内で時間が加速される仕様があるから。
215デフォルトの名無しさん:04/03/16 22:47

 次 期 と か 次 世 代 と か は ど う で も い い
216Age.P.Hukai ◆hsp/8n/.as :04/03/16 23:02
Ruby is the shittest language in programming.
で次期Rubyっていつ出るの?
>>216
英語わからないなら無理して使おうとしない方がいいよ。
All your script language are belong to us!!
Perl から Ruby に乗り換えるとコードサイズは半分、開発期間は 1/4 になるそうです。

結論:開発速度は Ruby ガ最速
通信テストプログラムをrubyで書いたが楽だった。
思わずこっちの方を出荷したいとか思ってしまった。
ruby2perlを作れ
それで納品問題も解決
>>220ソースよこせこら
やーだね(ププォ
>>222
うちの仕事でperlなんて使ったらはったおされそうだw
>>223
http://pc2.2ch.net/test/read.cgi/tech/1074235226/927
の話だろう。妄信って怖いねぇ…。
慣れてる言語を使ったほうがそうでない言語を使うより、
質も開発速度も良いというだけじゃないかね。
228デフォルトの名無しさん:04/04/08 20:23
t3x[ ttp://www.t3x.org ]出てこないな…
ま、この言語をTrackingしているのはオレだけか。
お前だけ。
230デフォルトの名無しさん:04/04/08 20:31
一番表現力が豊かなのはActionScriptだけどな
早いかどうかは知らん
ActionScript って JavaScript とどう違うの?
232デフォルトの名無しさん:04/04/08 21:00
>>231
JavaScriptの元になった別の規格があるらしいんだけど、
それにFlashのオブジェクトをガチャコンと結びつけたもの。
基本的にはJavaScriptと同じ

独特のスタイルとしては
deleteでGCによる強制回収が出来たり
色情報はColorでのみなど、専用オブジェクトにハンドラを渡す必要があったり
porototypeを利用したクラスの定義などが出来る
233デフォルトの名無しさん:04/04/08 21:14
>>228
ちょっと覗いてみたけど、なんで最近の言語はみんな
英語にちがづけるんだ???

他人が綺麗に書いたソースは読みやすいかもしれんが、
自分が書くときにはこまる。
>>219
懐かしいな
>>232
thanx!!

ttp://www.webreference.com/programming/javascript/j_s/column2/

ECMAScript 1.0 edition 2 って事は、幾つかの差異を除けば、まんま JavaScript なんだね。
236デフォルトの名無しさん:04/07/17 20:05
しかし藻前羅は神だな(ワロタ
237デフォルトの名無しさん:04/07/17 20:23
最下位はTTSに決定されますた
身の回りの小物は昔からずっとTcl/Tkで作ってるマイナー志向の俺。
おめーらは色々とスクリプトを乗り換えて来たと思うけど
やっぱりPerl->Rubyとか多いの?
Rubyは信者がキモイんで、まったりPython
まったりJavaScript
242デフォルトの名無しさん:04/09/15 22:07:30
スクリプト言語に速度求める時点でアフォw
243デフォルトの名無しさん:04/09/15 22:35:26
じゃあなんで上げたんやアホ
244デフォルトの名無しさん:04/09/15 23:40:54
やっぱメジャーな言語に流れるのが一番いい
速度より時間の節約だよ
245デフォルトの名無しさん:04/09/15 23:44:05
まあ、それはそれ。
このスレの趣旨はそれじゃない。
246デフォルトの名無しさん:04/09/16 21:41:59
CPUとかGPUみたいに、典型的なベンチマークってないの?
247デフォルトの名無しさん:04/09/17 22:26:54
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
248デフォルトの名無しさん:04/09/17 22:40:22
スレ違いだよアホ
249デフォルトの名無しさん:04/09/17 22:50:30
でかいほど速い

Perl perl 15.9688
Python python 15.0060
Pike pike 14.3161
Lua lua 13.3868
Erlang hipe 13.2092
Python psyco 13.0327
Ruby ruby 11.6489
Awk 10.7199
Tcl 9.5188
Bash 6.6484
Emacs Lisp 5.5613
250デフォルトの名無しさん:04/09/18 00:32:05
>>248
コピペだろ。
相手するとつけあがるぞ。
251デフォルトの名無しさん:04/09/18 04:50:48
>>249
hipe, psyco って遅いのか。
何のテストしたの?
252デフォルトの名無しさん:04/09/18 13:20:45
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
253デフォルトの名無しさん:04/09/18 13:22:21
>>251
http://shootout.alioth.debian.org/craps.php
のテスト全部の総得点
254デフォルトの名無しさん:04/09/18 13:31:46
>>253 によると、開発効率、速度などの観点から、
MLが最強ということでよろしいか。
F# 最強、ということでよろしいか。
255デフォルトの名無しさん:04/09/18 13:43:13
>>254
上位にいるML系言語実装はスクリプタじゃなくてコンパイラだから
スレ違いじゃないの?
256デフォルトの名無しさん:04/09/18 13:45:32
コード行数とかも評価対象に入れると
Perlがコンパイラ類と比べてもかなり上位に来るぞ
257デフォルトの名無しさん:04/09/18 14:29:12
もいっこ、有名どころ。
http://www.bagley.org/~doug/shootout/craps.shtml

Language Implementation Score Missing
Cgcc7520
Forthgforth6372
Lualua6152
Pythonpython5780
Perlperl5770
Rubyruby5460
Eiffelse5124
Schemeguile3960
258デフォルトの名無しさん:04/09/18 14:29:45
超ずれた鬱
259デフォルトの名無しさん:04/09/18 14:38:13
Language Implementation Score Missing
C     gcc     752   0
Forth  gforth    637   2
Lua   lua      615   2
Python python   578   0
Perl   perl     577   0
Ruby   ruby    546   0
Eiffel   se     512    4
Scheme guile    396   0
260デフォルトの名無しさん:04/09/18 15:18:15
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
261デフォルトの名無しさん:04/09/18 20:00:13
もうコピペは良いよ。
262デフォルトの名無しさん:04/09/21 05:57:20
>>260
荒らし報告完了
263デフォルトの名無しさん:04/09/22 21:25:40
>>259
ruby≒C ???
264デフォルトの名無しさん:04/09/22 21:53:51
Groovy=愚ruby ???
265デフォルトの名無しさん:04/09/25 18:39:34
rubyはあの遅さが一番印象に残っているんだが…
正直、あれより遅い言語ってあるの?
266デフォルトの名無しさん:04/09/25 18:49:32
HSP > Ruby > ひまわり > TTS
267デフォルトの名無しさん:04/09/25 21:57:12
>>263
No!!
Python >= Perl >>>> Ruby !!!!
268デフォルトの名無しさん:04/09/27 21:34:55
蛇>=真珠
って本当?
269デフォルトの名無しさん:04/09/27 22:21:25
厨房くせーから蛇とか真珠とかいうなやハゲ
270FeaturesOfTheGod ◆UdoWOLrsDM :04/09/28 11:52:21
Ruby は如何するのだろう?
271デフォルトの名無しさん:04/09/28 12:31:07
真珠は玉葱汁に遠く及ばん
272デフォルトの名無しさん:04/09/28 15:45:04
Rubyは最低ランクのスクリプト言語なのに、なんでユーザーは厚かましいの?
273デフォルトの名無しさん:04/09/28 16:17:24
HSP
274FeaturesOfTheGod ◆UdoWOLrsDM :04/09/29 13:38:56
Ruby は、ライブラリ使わなくても巨大整数が扱える。
275名無しさん@Emacs:04/09/29 15:10:24
Python もそうだけど。
276FeaturesOfTheGod ◆UdoWOLrsDM :04/09/29 15:35:19
Re:>275 そうだったのか。Pythonは殆ど知らないもので。
277FeaturesOfTheGod ◆UdoWOLrsDM :04/09/29 15:37:04
私はPythonの実行環境を持っているのに、Pythonを殆ど知らない。
こういう経験は無い?
278デフォルトの名無しさん:04/09/29 15:47:26
Rubyはちょっとした最適化ぐらいやって欲しいよね
動的なのがジャマしてるの?
279デフォルトの名無しさん:04/09/29 22:17:10
Groovy-1.0-beta-6で挑戦。

def tarai(x, y, z) {
if (x <= y) {
return y
} else {
return tarai(tarai(x-1, y, z),
tarai(y-1, z, x),
tarai(z-1, x, y))
}
}

println tarai(12, 6 ,0)

8.89 / ruby 1.8.1 (2003-12-25) [i386-cygwin]

遅いとは聞いてたが、まさかここまで・・・
280デフォルトの名無しさん:04/09/29 22:31:04
JavaVMにコンパイルしるとどうなる?
281279:04/09/29 23:36:51
やってみた。

2.79 / ruby 1.8.1 (2003-12-25) [i386-cygwin]

速くはなったけど、期待したほどではないな。

ちなみに以下のJavaコードだと、

public class JavaTarai {
public int tarai(int x, int y , int z) {
if (x <= y) {
return y;
} else {
return tarai(tarai(x-1, y, z),
tarai(y-1, z, x),
tarai(z-1, x, y));
}
}
public static void main(String[] args) {
JavaTarai tarai = new JavaTarai();
System.out.println(tarai.tarai(12, 6 ,0));
}
}

0.0028 / ruby 1.8.1 (2003-12-25) [i386-cygwin]

まあ当たり前か。
282デフォルトの名無しさん:04/09/29 23:41:01
>>278
GC の性能改善するくらいかね。
ほとんどすべてのメソッドが再定義できるので、
定数畳み込みすら難しい
(1 + 1 でさえコードを全部調べないと 2 だとは言えない)。
283279:04/09/30 18:52:37
Groovy-1.0-beta7が出てたんで再度やってみた。

事前コンパイル無し 2.83 / ruby 1.8.1 (2003-12-25) [i386-cygwin]
事前コンパイル済み 2.71 / ruby 1.8.1 (2003-12-25) [i386-cygwin]

事前コンパイル無しでの性能が大幅アップ。つうかこれまでが遅すぎた。

・・・たらい回し専用チューニングとかされてないよな(w
284デフォルトの名無しさん:04/09/30 21:43:22
それにしてもJavaVM使っていながらrubyより遅いって、犯罪的では?
開発陣のやる気のなさが垣間見える。
285デフォルトの名無しさん:04/09/30 22:19:23
>>284
まだ言語仕様自体も固まってない段階だから
最適化は後回しにしてるんだと思う。
286デフォルトの名無しさん:04/09/30 22:54:18
>>281
2.79とかいう数字は何?
287デフォルトの名無しさん:04/09/30 23:27:03
288デフォルトの名無しさん:04/10/01 06:14:42
>>287
Tnx
289デフォルトの名無しさん:04/10/01 23:57:47
でも、基準となる宝石コードはあるの?
290デフォルトの名無しさん:04/10/02 00:26:49
よく見たら、確かにRuby以外はコードが明示されてるのに、基準のRubyコードが無いね。

私はこれでやりました。

def tarai( x, y, z )
 if x <= y
  then y
 else tarai(tarai(x-1, y, z),
       tarai(y-1, z, x),
       tarai(z-1, x, y))
 end
end

puts tarai(12, 6, 0)
291デフォルトの名無しさん:04/10/03 12:17:53
素朴な疑問ですが、この関数は初期値の組合せによっては、
無限ループとなりませんか?

たとえば、tarai(3,2,1) の場合

0回目:tarai(3,2,1)
1回目:tarai(tarai(2,2,1),tarai(1,1,3),tarai(0,3,2))
=tarai(2,1,3)
2回目:tarai(tarai(1,1,3),tarai(0,3,2),tarai(2,2,1))
=tarai(1,3,2)
3回目:tarai(tarai(0,3,2),tarai(2,2,1),tarai(1,1,3))
=tarai(3,2,1)

となり、最初の値と同じになってしまいます。
292291:04/10/03 12:35:26
スマン、2回目で値3と決まってしまうことに気づいた。

スルーしてくれ。
293デフォルトの名無しさん:04/10/03 19:46:49
Rubyでミリ秒取ってくるのどうやるの?

C言語で言うclock()か何かあればいいんだけど。
294デフォルトの名無しさん:04/10/03 21:06:34
timeではかれ
295デフォルトの名無しさん:04/10/03 21:28:29
Java の成績が良いのでふと思ったのですが、計算時間が優秀でも VM の起動時
間とかが遅いと用途によっては台無しですね。Java とか遅いですし。

皆さん、関数単位での計測なんでしょうか?
296デフォルトの名無しさん:04/10/04 02:05:54
>>281
0.0028じゃなくて0.028じゃない?
そうじゃないとC系コンパイラより10倍速くなってしまうよ。
297279:04/10/04 18:40:31
確かに1桁間違ってますね。

あと、実行時間はCygwin bash shell上でtime使って測定してます。
298デフォルトの名無しさん:04/10/04 21:00:35
>>117
phpのソースは汚いなあ(w
$がゴミみたい。

>>141
ナニコレ?
もっと簡潔に書けないの?

>>181
結局haskellとかって、関数の括弧とっぱらたつっても
逆に優先度のための括弧が妙な具合に必要になったりするのね。
なんか本末転倒じゃない?


そういやHSPのソース無いな。
誰か参戦しろよ。
299デフォルトの名無しさん:04/10/04 21:21:35
HSPって関数無いだろ。
300デフォルトの名無しさん:04/10/05 08:03:13
マジで?
そんなんでよくゲーム作れるな。
301FeaturesOfTheGod ◆UdoWOLrsDM :04/10/05 09:35:46
Re:>299 ん?それじゃあ、 mes "hogehoge" とかは何なの?私は関数という言葉をよく知らないから教えて。
302デフォルトの名無しさん:04/10/05 11:12:38
言葉を知りたければ辞書などを利用してはどうですか? ;-)
303デフォルトの名無しさん:04/10/05 18:15:28
組み込み手続き
304デフォルトの名無しさん:04/10/06 21:11:44
結局の所、タライ回し関数が早いということは、
スクリプト全体の性能のうち、どの部分が良いのですかね?

rubyが意外に健闘しているのが、意外だった。
305デフォルトの名無しさん:04/10/06 21:12:39
あと、コンパイラを除くと今までのランクは
rubyが1位でOK?
306デフォルトの名無しさん:04/10/06 21:35:51
>>304
関数呼び出しのオーバーヘッドかな?
>>305
rubyはむしろ最下位に近いわけですが。
307デフォルトの名無しさん:04/10/07 00:41:02
まじめな話、一番良いと思われる、スクリプト言語ってなんですか?
自分は、理工系の数値計算の出身。
低水準言語のFortran及び、スクリプト言語はシェルを使用しています。
これから、勉強するならば、やはりPerlでしょうか?
308デフォルトの名無しさん:04/10/07 00:59:39
やはりと思うならそのPerlにしとけよ(w
309デフォルトの名無しさん:04/10/09 21:43:17
perlちょっと触ってみて汚い文法に耐えられそうならそのまま使っとけ。
耐えられそうにないならPython, Rubyを検討すべし。
WindowsならVBS。
310デフォルトの名無しさん:04/10/10 19:21:03
おれは、ruby -> perl と流れてきたんだが、
今は、 perl の次を探している。w
311デフォルトの名無しさん:04/10/10 19:48:18
>>310
Tclで。その次はSchemeで。
312デフォルトの名無しさん:04/10/11 00:44:00
TCL は昔見たけど、勘弁W
スキームは、見たこともないw
313デフォルトの名無しさん:04/10/11 00:53:34
>>310
おれと逆...
sh+sed+awk -> Perl -> Ruby
んでもってrubyの次さがしてる。
でも、RubyがUnixにデフォルトで入るのはいつだろ。。。
314デフォルトの名無しさん:04/10/11 01:06:45
普通にECMAScriptで
315デフォルトの名無しさん:04/10/11 02:13:32
なんで、ここでは、PHPは無視されがちなのかの?

PHPは、いいよ。
316デフォルトの名無しさん:04/10/11 02:17:54
>>313
Freeware for Solaris には入ってるよ。
Linux も Redhat は入ってたと思った。
317デフォルトの名無しさん:04/10/11 09:55:15
HSP
318デフォルトの名無しさん:04/10/11 12:28:31
今まで書き溜めたツールとかライブラリを書き直すのが
めんどくさいので未だにtcl/tkですが・・・。
319デフォルトの名無しさん:04/10/11 13:10:50
>>315
俺もphpは好きだけどイマイチ速度がね…
ココって最速スレだし。

php 4.3.9 Zend Engine v1.3.0
<?php
$n = ($argc == 2) ? $argv[1] : 1;
$x = 0;
for ($a=0; $a<$n; $a++)
for ($b=0; $b<$n; $b++)
for ($c=0; $c<$n; $c++)
for ($d=0; $d<$n; $d++)
for ($e=0; $e<$n; $e++)
for ($f=0; $f<$n; $f++)
$x++;
print "$x\n";
?>
1.66 / ruby 1.8.2 (2004-07-29) [i686-linux]
320LettersOfLiberty ◆rCz1Zr6hLw :04/10/11 14:03:00
wsf形式はどれぐらい速い?
321デフォルトの名無しさん:04/10/11 14:11:27
スクリプト選んだ時点で速さなどどうでもいい
322デフォルトの名無しさん:04/10/11 15:06:14
え、おれは速いスクリプト選ぶよ?
自宅鯖のCGIなんかほとんどネイティブコンパイルしたのが動いてるし。
どうでもいいって奴はRubyみたいな最下位彷徨ってる哀れな言語使ってるだけじゃね?
323デフォルトの名無しさん:04/10/11 15:59:57
速さと書きやすさを両立したOcaml選ぶだろ、普通。
324デフォルトの名無しさん:04/10/11 16:37:26
スクリプトに速度を期待する方がおかしい
325デフォルトの名無しさん:04/10/11 17:14:04
ネイティブコンパイルできるスクリプトって?
326デフォルトの名無しさん:04/10/11 17:18:52
>>325
きっと >>322 の1行目と2行目は別の話なんだろう。
327デフォルトの名無しさん:04/10/11 17:23:53
C言語のインタプリタ知らんの?
328デフォルトの名無しさん:04/10/11 17:29:00
C言語のインタプリタはスクリプトなんですか?
329デフォルトの名無しさん:04/10/11 17:29:24
そうだよ。
330デフォルトの名無しさん:04/10/11 20:22:24
>>325
Java じゃない?
331LettersOfLiberty ◆rCz1Zr6hLw :04/10/12 16:57:54
Re:>327 逆に、perl, Ruby, Python, JS, VBS などのコンパイラというのはあるのですか?
332デフォルトの名無しさん:04/10/12 17:01:21
コンパイラとスクリプトの区別なんて不毛なことはやめとけ
333LettersOfLiberty ◆rCz1Zr6hLw :04/10/12 17:17:07
Re:>332 いや、違いが明らかだからそもそも改めて区別しようなんて思わないのだが。
334デフォルトの名無しさん:04/10/12 19:52:25
Perlをx86にするコンパイルできるコンパイラがあったら三万までは出す
335デフォルトの名無しさん:04/10/12 20:29:47
落ち着いてしゃべれ
336デフォルトの名無しさん:04/10/12 20:33:04
Perlは標準でCにトランスレートできるから
そっから最適化を吟味すればいいんじゃないかな。
337デフォルトの名無しさん:04/10/13 20:20:50
Ocaml はスクリプトとは認めてもらえんのですか
338デフォルトの名無しさん:04/10/13 20:58:00
いくら早くても、コードが見にくい言語は勘弁なw
339デフォルトの名無しさん:04/10/13 21:09:25
rubyのことかー
340いなむらきよし:04/10/13 21:39:19
奇形の上にも三年(^^)
341デフォルトの名無しさん:04/10/13 21:47:14
22年
342デフォルトの名無しさん:04/10/17 21:08:58
洩れはruby房ではないが、もっと遅いとおもってたよ。
関数呼出は、案外いいんでない。

構文は嫌いだけどw
343デフォルトの名無しさん:04/10/18 21:14:09
でことは、ルビー最強でOK?
344デフォルトの名無しさん:04/10/18 21:27:33
やっぱ最高はハスケル。
二番がルビー。
三番がパイソンだろ。

ハスケルとその他には超えられない壁がある。
345デフォルトの名無しさん:04/10/18 22:07:56
>>342-344
Rubyスレに戻ってください
そして出てこないでください
ゴミ!
346LettersOfLiberty ◆rCz1Zr6hLw :04/10/18 22:17:06
ハスケル?
初耳だという私は素人?
347デフォルトの名無しさん:04/10/18 22:23:50
ハスケルはコンパイラでは?
348デフォルトの名無しさん:04/10/18 22:57:38
静的型付けは反則にしない?
349デフォルトの名無しさん:04/10/18 23:23:31
Haskellはスクリプトなんだろうか
350デフォルトの名無しさん:04/10/18 23:35:43
またくだらない分類厨が沸いて出たな
351デフォルトの名無しさん:04/10/19 11:28:42
ハスケルも仲間にいれてやれよ。


ぱーる、るびー、ぱいそん、ぴーえいちぴー、だけのスレかよ。
352デフォルトの名無しさん:04/10/19 22:35:47
で結局たらいまわし関数ってなんなんだ。
ググっても「たらいまわし関数は竹内関数デス。意味はないデス」としか出てこねーぞ。
353デフォルトの名無しさん:04/10/19 22:39:04
意味もなく重い関数ってだけで実際計算結果には何の意味もない。
関数呼び出しのオーバーヘッドが計測できる。
自分ならフィボナッチとかマンデルブロとかもう少し意味のある計算させるけどね。
354デフォルトの名無しさん:04/10/19 22:40:00
プログラムを組み始めてから実行結果が出るまでのベンチマークをしてほしいね。
355デフォルトの名無しさん:04/10/20 00:50:41
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< くっちゃらはぴはぴ!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ!
Py厨~~~~!    >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」               ̄     / /

356デフォルトの名無しさん:04/10/20 01:24:05
じゃあ rouge clone (ローグクローン) が出来上がるまでの早さで競うか。
キャラクタベースだから大抵の言語で作れるだろうし。

・プレイヤーは@
・モンスターはA-Za-zで、バリエーションは任意。
・地下10Fまでの横80x縦25の大きさの壁に囲まれた迷宮を毎回ランダム生成
下り階段>
上り階段<
壁#
迷宮内の照明や視点は任意。
その他細かいことは適当なアレンジで。
357デフォルトの名無しさん:04/10/20 01:50:12
>>353
サンキュ。でも再帰とどう違うのかサッパリわかりません。
遅延評価ってのがある言語用のイディオムで手続き型だと再帰と同一視してよいもの?
遅延評価ってのでなぜ高速になるのかもサッパリわからんよ…。難しい。
358デフォルトの名無しさん:04/10/20 01:52:02
例えるなら分数のようなもの

と極論をかましてみる
359デフォルトの名無しさん:04/10/20 02:02:03
>>354,356
こっちでやってくれ。

最強開発速度言語決定戦
http://pc5.2ch.net/test/read.cgi/tech/1068545254/
360デフォルトの名無しさん:04/10/20 11:39:21
>>357
例えば遅延評価式なら計算可能だけれど、無限再帰してしまう脱出不能な関数を考えてみて
そこで、無限再帰のはまり関数を「十分に重い関数」だと考えてみて。
そうすれば何処が高速化するのか分ると思う。
361デフォルトの名無しさん:04/10/20 18:03:14
>>344
洩れは、パイパンのほうが(ry
362LettersOfLiberty ◆rCz1Zr6hLw :04/10/21 15:55:15
Re:>361 そんなスクリプトあったっけ?初耳だな。
363デフォルトの名無しさん:04/10/21 22:07:51
マジに聞くなよ童貞
364LettersOfLiberty ◆rCz1Zr6hLw :04/10/21 22:25:58
ループの速さで競うとどうなるか?
とりあえず、1から、1000000までの整数を、一つごとに改行を入れて表示するプログラムは何で書くのが一番いいかを誰かレポートよろしく。
365デフォルトの名無しさん:04/10/22 00:54:25
最速はOcamlです

他の言語がゴミの様だ!
366LettersOfLiberty ◆rCz1Zr6hLw :04/10/22 09:41:33
Re:>365 Ocamlって何?
367デフォルトの名無しさん:04/10/22 10:19:32
プゲラッチョ
368デフォルトの名無しさん:04/10/22 10:21:03
369デフォルトの名無しさん:04/10/22 12:29:50
たらいまわし (12, 6, 0) の実行時間.単位は秒数
Windows2000 cygwin i686 866MHZ

gcc 3.3.3 O0    0.41
gcc 3.3.3 O2    0.36
gosh-0.8.1     8.74
clisp        5.40
python-2.3.4   17.4
ruby-1.8.1    23.9
perl-5.8.5     61.0
370デフォルトの名無しさん:04/10/22 12:31:52
Perlよく知らないのでどなたか添削よろ

sub tarai
{
my ($x, $y, $z) = @_;

if ($x <= $y) {
return $y;
}
else {
return tarai(tarai($x-1, $y, $z),
tarai($y-1, $z, $x),
tarai($z-1, $x, $y));
}
}

print tarai(12, 6, 0);
371いなむらきよし:04/10/23 01:18:17
添削以前のレベルだキケー!
人生やり直すのはできるだけ早い方がいいキケー!
プログラマーなんて夢は捨てて荷物まとめて国に帰った方がいいキケー!
372デフォルトの名無しさん:04/10/23 11:13:29
>>369
スクリプト言語に限定すると、オブジェクト指向の方が早いのかねぇ?
タライ回し。
373デフォルトの名無しさん:04/10/23 11:27:28
OOは関係ない
関数をまともに扱えるかどうかだと思う
Perlの関数はまともじゃないからね
374デフォルトの名無しさん:04/10/23 20:36:50
>>373
いや、逆だろう?
まともに関数を組んでいる方が遅くなると思われ

違う?
375デフォルトの名無しさん:04/10/23 23:45:56
>>372
>>369
> gosh-0.8.1     8.74
> clisp        5.40
> python-2.3.4   17.4
> ruby-1.8.1    23.9

goshもclispもオブジェクト指向じゃなくて関数型だとおもいますが。
376デフォルトの名無しさん:04/10/24 06:12:31
377デフォルトの名無しさん:04/10/24 19:03:27
>>334
x86 というわけじゃないけど、perl をコンパイルしたければ
perlcc を使えばいいんじゃないの?

前の仕事で perl でプログラムを書いていたんだけど
どうしても速度が遅くて、だけど C 等で書き直す時間がなかったので、
*.pl を perlcc でコンパイルしたものを実際には使った。
かなり速くなったよ。
以降のメンテは、
・perl スクリプトを修正し、perl のまま単体テスト
・perlcc でコンパイルしてから、生成された方を本番環境にリリース
ってやってたよ。

# なんかはずしたこと言っていたらごめんなさい
378デフォルトの名無しさん:04/10/24 22:05:08
>>375
そうか? clisp って一応 Meta Object Protocol もあるし
本格的にオブジェクト指向だと思うのだが.
379デフォルトの名無しさん:04/10/24 22:24:35
まぁ、オブジェクト指向はオタク言語だからなぁw
380デフォルトの名無しさん:04/10/24 22:36:07
久々に低レベルな煽りをみた
381 ◆7CWqH7Oesg :04/10/24 22:59:56
>>370
ほぼ限界まで添削してみた。

sub tarai{
return $_[0] > $_[1] ? tarai(tarai($_[0]-1,$_[1],$_[2]),
tarai($_[1]-1,$_[2],$_[0]),
tarai($_[2]-1,$_[0],$_[1])) : $_[1];
}

print tarai(12, 6, 0);
382デフォルトの名無しさん:04/10/25 09:56:07
>>6のサイト潰れたね
383デフォルトの名無しさん:04/10/25 10:31:12
384デフォルトの名無しさん:04/10/25 21:49:07
>>380
平静を装っているところが痛いw
385デフォルトの名無しさん:04/10/25 22:45:29
今時スクリプト言語ですらオブジェクト指向ですよおじさん
386デフォルトの名無しさん:04/10/27 22:09:24
>>385
real engineer は、オブジェクト指向を使わないw
これ定説。
387デフォルトの名無しさん:04/10/29 22:45:56
>>386はバカ
これ定説。
388デフォルトの名無しさん:04/10/30 01:52:37
いや、確かにオブジェクト指向は技術者向けではない。
389デフォルトの名無しさん:04/10/30 01:54:27
究極のプログラミングはハードウェア制御だろ?
そんなものにオブジェクト指向使ったら(ry
390デフォルトの名無しさん:04/10/30 01:56:43
MSILはオブジェクト指向アセンブラだ。
近い将来MSILに特化したオブジェクト指向CPUが出る。間違いない。
391デフォルトの名無しさん:04/10/30 11:37:42
>>390
w
392デフォルトの名無しさん:04/10/31 18:48:17
>>389
まぁ、技術者(といってもコンピュータとか分かる系)なら、
変に抽象化するオブジェクト指向は、かえって邪魔というのは良く聞く話。

その証拠に、オブジェクト指向言語で書かれたオブジェクト指向言語って皆無
393デフォルトの名無しさん:04/10/31 19:27:30
>>392
Jythonとかは?
394デフォルトの名無しさん:04/10/31 19:57:58
.       ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (;´Д`)< すいませんすぐ片付けますんで。
  -=≡  /    ヽ  \_______
.      /| |   |. |
 -=≡ /. \ヽ/\\_
    /    ヽ⌒)==ヽ_)= ∧_∧
-=   / /⌒\.\ ||  ||  (´・ω・`) ←>>721
  / /    > ) ||   || ( つ旦O
 / /     / /_||_ || と_)_) _.
 し'     (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))
395デフォルトの名無しさん:04/10/31 19:58:57
誤爆スマソ
396デフォルトの名無しさん:04/10/31 20:00:38
.       ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (;´Д`)< すいませんすぐ片付けますんで。
  -=≡  /    ヽ  \_______
.      /| |   |. |
 -=≡ /. \ヽ/\\_
    /    ヽ⌒)==ヽ_)= ∧_∧
-=   / /⌒\.\ ||  ||  (´・ω・`) ←>>394-395
  / /    > ) ||   || ( つ旦O
 / /     / /_||_ || と_)_) _.
 し'     (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))

397ChaosicSoul ◆/yaJbLAHGw :04/10/31 22:17:11
オブジェクト指向型は共同作業向け?
398デフォルトの名無しさん:04/10/31 23:43:28
つーか
馬鹿向け

C++やJavaは馬鹿にはまだまだ難しい
Smalltalkにしときなさい
399デフォルトの名無しさん:04/11/01 21:33:34
>>397
いや、それもよく言われることだが、特に向いていると言うわけでもない。
言葉は悪いが、「コンピュータ素人向け」とでもいうのだろうか?

まぁ、目的があって手段を問わない系だね。

# 馬鹿向けは、ワロタ
400デフォルトの名無しさん:04/11/01 21:36:31
ここは窓際C厨の大活躍なスレですね
401デフォルトの名無しさん:04/11/01 22:49:45
Cは北京原人向け
402デフォルトの名無しさん:04/11/01 23:56:33
main :: IO ()
main = print (tarai 12 6 0)

tarai :: Int -> Int -> Int -> Int
tarai x y z
 | x <= y   = y
 | otherwise  = tarai (tarai (x-1) y z)
            (tarai (y-1) z x)
            (tarai (z-1) x y)
403デフォルトの名無しさん:04/11/02 00:12:51
>>401 は、マイクロソフト何とかしか使えんアフォw
404デフォルトの名無しさん:04/11/02 00:16:12
C最強
#define tarai(x,y,z) (x<=y)?y:tarai(tarai(x-1,y,z),tarai(y-1,z,x),tarai(z-1,x,y))
405デフォルトの名無しさん:04/11/02 00:59:00
>>404
それが何かわからんが、
その手のそれでLISPにかなう言語なんてあるのか。
つか、LISPに関しては噂しか聞いた事無いけど
406デフォルトの名無しさん:04/11/02 01:21:20
ぬるぽ
407ChaosicSoul ◆/yaJbLAHGw :04/11/02 20:58:21
Re:>405 LISPインタプリタに依存するのではないか?私もよく知らないが。
408デフォルトの名無しさん:04/11/02 21:07:51
Cは北京原人向け
409デフォルトの名無しさん:04/11/02 22:19:17
日本人は、中国に国力で負けw
410デフォルトの名無しさん:04/11/03 01:27:12
中国という国は存在しない。
よって国でないものに国力などというものもない。
あると思うならそれは幻想である。
411デフォルトの名無しさん:04/11/03 03:44:10
ミッドランド
412デフォルトの名無しさん:04/11/03 12:50:15
なんか、このスレの住人のレベルが分かったようなwww
中国といい、オブジェクト指向といい、
アフォばっかりwww
413デフォルトの名無しさん:04/11/03 12:52:53
↑このスレで一番のアフォ
414デフォルトの名無しさん:04/11/03 13:19:29
で、どれが最速なの
415デフォルトの名無しさん:04/11/03 13:44:36
Cは北京原人より速い
416デフォルトの名無しさん:04/11/03 18:21:50
やっぱCじゃないの?トータルバランスで。
すでに完成された言語で歴史があるから。
でもスクリプト言語って定義は何なの。要はプログラミング言語の
総称か?それとも....。
417デフォルトの名無しさん:04/11/03 19:15:57
習得が簡単
インタプリタ
型チェックが緩い
ワンライナーが書ける
純粋であるよりは便利さを志向

などの特徴をより多く持つ言語たち。
418デフォルトの名無しさん:04/11/03 19:59:24
Cは中国に国力で速いw
419デフォルトの名無しさん:04/11/03 20:25:15
>>417
(付けたし)

ただし、オブジェクト指向を除くw
420デフォルトの名無しさん:04/11/03 20:33:39
>>419
意味不明にバカなw厨発見
421デフォルトの名無しさん:04/11/04 07:31:00
そんなに悔しがらなくてもwwwww
422デフォルトの名無しさん:04/11/04 08:10:35
悔しがってるのどっちだよ、バカじゃねーの?
423デフォルトの名無しさん:04/11/04 20:27:43
各言語で10億までの双子素数の組をファイル出力するプログラムの最速で勝負をつけたらどうなんだ?

プログラマーの脳みそも試される試練だろうな。
他の言語にいちゃもんつけるぐらいしかできないやつには厳しい。
ちなみに普通の素数の判定では総当りで判定するのはメモリは節約できるが、とてつもなく遅い。
素数全探索であるならば10億まででSharp Note Mobile Athlon 1100+MHz級のCPUで3分切れなきゃ遅いアルゴリズムだと思っていい。
424デフォルトの名無しさん:04/11/04 20:31:54
お題の出し方に知恵の遅れを感じるな
425デフォルトの名無しさん:04/11/04 21:49:35
GAME-Z80とかTTLはスクリプト言語に入りますか?
426デフォルトの名無しさん:04/11/04 22:27:18
オマエはどう思う?
427デフォルトの名無しさん:04/11/05 02:13:54
>>423
関数型言語はありですか?

つか最速言語決めるのにアルゴリズム知ってる奴が言語関係なく勝っちゃう課題にしてどうする
428デフォルトの名無しさん:04/11/05 04:56:23
開発速度が最速っていう意味じゃないの?
429デフォルトの名無しさん:04/11/05 05:11:49
430423:04/11/05 08:45:17
>>424
お前が作った総当りプログラムが222293を20000で割れるかどうか試さないことを祈ってる。

>>427
まあ、いいんじゃないか。

>>428
総当り方がメモリにはやさしいがスピードに関してはダメだ、というヒントは出した。
総当り方じゃないアルゴリズムといわれれば、どういうアルゴリズムかおのずと答えが出るよね?

ただし、普通のアルゴリズムでは壁が出てきますが。
431デフォルトの名無しさん:04/11/05 09:11:32
その皮肉が理解できるほど
424が普通の頭を持ってるとも思えない
432デフォルトの名無しさん:04/11/05 10:09:33
Cマガ読んでる人はもう解答が分かっているはずなわけですが
433デフォルトの名無しさん:04/11/05 13:54:04
Sharpのノート買ってる時点で頭の程度が知れてる。
プログラマならIBMのThinkPad一択。
434デフォルトの名無しさん:04/11/05 13:59:55
つーかCマガの宣伝かよ
435423:04/11/05 15:17:07
>>433
ああ、残念。
俺はノートパソコン持っていないんだ。
これは単純素数計算で自称最速をいっている人の記録を参考にしただけ。
もちろんその人のパソコンでの記録。

10億 1分50秒を切る速さ
50億 9分を切る
100億 17分50秒を切る

とのこと。
436デフォルトの名無しさん:04/11/05 17:25:52
>>423
スレ違い(←スレッドのテーマにそぐわない書き込みのこと)です。
437423:04/11/05 18:04:24
>>436
じゃあ、最速を決めるほかにいい案があるというの?
それともここは自分の嫌いな言語を叩くスレになったの?
438デフォルトの名無しさん:04/11/05 18:22:37
>>437
書き方が誤解されやすいんじゃないか?
423は単一アルゴリズムのつもりだけど、文章読むとアルゴリズムに選択の幅があるように思えてしまう。

423で言いたいのは、
・脳みそを試される試練=この課題に最適なアルゴリズムが選べる
・遅いアルゴリズムだと思っていい=最適なアルゴリズムのヒント(基準)
ってことで、その最適なアルゴリズムはおのずと1つになるってことだろ。

その最適な1つのアルゴリズムで、言語決定戦をしとうって話。

俺にはその最適なアルゴリズムは分からんがw
439デフォルトの名無しさん:04/11/05 18:24:35
>>437
>>素数全探索であるならば10億まででSharp Note Mobile Athlon 1100+MHz級のCPUで3分切れなきゃ遅いアルゴリズムだと思っていい。
アルゴリズムによる速度差が出てくるようなお題では、スクリプト言語処理系の速度比較にならないじゃん。
440デフォルトの名無しさん:04/11/05 18:56:03
最速言語は brainfsck 間違いない
もまいらも使ってみる事をオススメする
頭がすっきりするぞ
441423:04/11/05 19:09:16
しょうがないなあ、
じゃあ、ほぼズバリな最適アルゴリズムのヒントを出すよ。

まず紙と鉛筆。1から100まで紙に数字を書け。
まず1は線を引いて消しとけ。そして2に丸をつけろ。
そうしたら2以外の2の倍数の数字に線を引いて消しとけ。
その次の線が引かれていない数字は3だ。丸をつけて、他の3の倍数の数字を消せ。
これを繰り返せ。

これでいいよな?
まだそれ以外の部分でも問題は山積みだがな。
たとえば
10億になると大規模な紙=メモリを消費する。ページングを起こす=大幅な速度低下なので、普通の機種ならページングを起こさない前提で作ること。
とか
掛け算かそれとも足し算か
とか

結局この手の競技は最終的にプログラマーのチューニングの根気も試され、それが秒単位ながらも着実に差が出るわけだが・・・
442デフォルトの名無しさん:04/11/05 19:11:12
スレ違い
443デフォルトの名無しさん:04/11/05 19:39:58
>>423
MS の JScript で書いてみたけど、どうやっても 3 分以内は無理そうだな・・・
喪前のアルゴリズムなら 3 分以内でいけるのか?
444423:04/11/05 21:02:28
>>443
そりゃインタプリタ言語使った時点で間違い決定としか言わざる得ない。
445デフォルトの名無しさん:04/11/05 21:11:48
423と漏れが同じスレッドで会話しているのかどうか、自信が無くなってきた・・・
446デフォルトの名無しさん:04/11/05 21:11:54
まぁ、素数の問題は良いとしてもアルゴリズムを統一せんとあかんやろ?
例えば、アリストテレスのふるいなんてのはいいとおもうが。

あと、オブジェクト指向もふるっとくか?w
447デフォルトの名無しさん:04/11/05 21:21:44
最初から普通に
「6k±1の倍数を篩うエラトステネスの篩いで、10億までの素数をファイルに
 10進で書き出すってのはどう?」
って書いた方が建設的だったような気がする。
「アルゴリズム工夫してXXXでした」ってのは、スクリプト言語の速度とは関係ないし。
448デフォルトの名無しさん:04/11/05 22:10:46
数値計算が得意な言語ばかりじゃないわけで。
449デフォルトの名無しさん:04/11/05 22:31:49
なんじゃこのアホは >>423
450デフォルトの名無しさん:04/11/05 22:32:56
スクリプトにはテキストフィルタ(ファイルIO、文字列処理)と
int32以下の数値計算の速度しか期待しないけどな。
まあ後は起動速度。
451デフォルトの名無しさん:04/11/06 00:46:00
大阪(西梅田)、新宿(JR駅前)のそれぞれ一等地に
拠点を構え、業績急上昇中!未経験者大募集中!の
ソフトウェア開発会社
グリーンシステムを応援するHPです。
http://www.geocities.jp/grs_hp/

応援するスレはこちら!
http://school4.2ch.net/test/read.cgi/job/1077432387/

最高の会社にするため、みんな頑張ってます!
452デフォルトの名無しさん:04/11/06 01:37:58
グリーンハウス>>>>>>>>グ(ry
453デフォルトの名無しさん:04/11/06 01:49:27
main :: IO ()
main = print (tarai 12 6 0)

tarai :: Integral a => a -> a -> a -> a
tarai x y z
  | x <= y      = y
  | otherwise   = tarai (tarai (x-1) y z)
                        (tarai (y-1) z x)
                        (tarai (z-1) x y)
454デフォルトの名無しさん:04/11/06 09:35:36
HSP
455デフォルトの名無しさん:04/11/06 10:21:41
また論理的思考のできないバカがPOPしてるな
456デフォルトの名無しさん:04/11/06 11:53:15
>>423
【えーっと・・・】
457デフォルトの名無しさん:04/11/06 12:39:56
たらいは、もういいよw
458デフォルトの名無しさん:04/11/06 12:55:03
ベタベタな方法で行数カウントしてみました。

perl test.pl
---------------ここから---------------
open IN, "/usr/share/dict/web2";
$i = 0;
while (<IN>) { $i++; }
print "$i\n";
---------------ここまで---------------

python test.py
---------------ここから---------------
f = file('/usr/share/dict/web2', 'r')
i = 0
for l in f:
i += 1
print i
---------------ここまで---------------

ruby (内容に自信なし...) test.rb
---------------ここから---------------
f = open("/usr/share/dict/web2", "r")
$i = 0
f.each_line() {|l|
$i += 1
}
print $i, "\n"
---------------ここまで---------------
459458:04/11/06 12:57:32
結果

% time ./test.pl
235882
./test.pl 0.21s user 0.01s system 96% cpu 0.226 total
% time ./test.py
235882
./test.py 0.24s user 0.03s system 96% cpu 0.283 total
% time ./test.rb
235882
./test.rb 1.25s user 0.02s system 97% cpu 1.302 total

ruby が遅い理由が私のタコなプログラムなせいだったら、ごめんなさい。
460458:04/11/06 13:59:21
以前、ruby は 0.8 をちゃんと扱える (0.80000000000000004 とならずに) と
書いてあったので、数値演算 ($i += 1) が遅いのか?

適材適所で切り替えられるといいんだけど...

ちなみに、python で

decimal (2.4) 使用
% time ./test2.py
235882
./test2.py 37.56s user 0.09s system 98% cpu 38.160 total

gmpy 使用
% time ./test3.py
235882
./test3.py 0.58s user 0.02s system 98% cpu 0.612 total

とそれなりに遅くなる。
# decimal 遅すぎ orz
461デフォルトの名無しさん:04/11/06 14:02:42
>>458
ruby版、イテレータが重いみたい。
while ( f.gets ) do
$i += 1
end

のが速い。
それでもperlやpythonより遅かったけど。

あと、rubyは31bitまでの整数は即値で扱ってる。
462デフォルトの名無しさん:04/11/06 14:05:47
>>458
これは反則?かなり速くなると思うよ
data = ''; open('/usr/share/dict/web2', 'rb'){|f|data = f.read}
data.concat "\n" if data[-1,1] != "\n"
p data.count("\n")
463461:04/11/06 14:13:48
反則ならこういうのもあるけど
f = open "xxx"
f.readlines
print f.lineno, "\n"

それでもperlより遅いのは何故だ。

perl>>458
real 0m0.046s
user 0m0.040s
sys 0m0.000s

ruby反則版
real 0m0.054s
user 0m0.050s
sys 0m0.000s
464458:04/11/06 14:19:54
>>461
サンクスです。やってみました。
% time ./test2.rb
235882
./test2.rb 1.23s user 0.03s system 97% cpu 1.295 total

う~ん、気持速くなったか...

>>462
こちらもサンクスです。やってみました。
% time ./test3.rb
235882
./test3.rb 0.07s user 0.01s system 99% cpu 0.078 total

速くなったが、perl や python でも「それだったら...」というのがありそう。

>>448 で、数値演算だけでないよ、とあったので、ファイル読み書きでも
やってみようかな、というのが元々の動機なので微妙ですね。

i++ を替えると応用が効くかなと思ってベタベタにしてあるんで...
# 言語に特化した方法で競うのも面白そうですが。


465461:04/11/06 14:22:10
ごめん。462のが速い。

real 0m0.011s
user 0m0.010s
sys 0m0.000s
466462:04/11/06 14:33:30
Rubyの高速化はいかに標準ライブラリ(=ネイティブコード、可能ならば標準添付ライブラリも)を
使いこなせるかが鍵だと思う。
467デフォルトの名無しさん:04/11/06 14:57:48
>>466
それはそうかも知れないけど、このスレの目的からはずれてるんじゃないかと
468デフォルトの名無しさん:04/11/06 14:59:36
それはつまり、あんまりRubyで書くなと言ってるのと変わらないわけで、
すなわちRubyは使い物にならないということでは・・・?
まさか専用イテレーターまで遅いとは思わなかったが。

せめて>>458の単純な繰り返しぐらいは内部で専用ロジックでも用意して
高速に実行できるべきだよね。
悪評高いHSPでもそれぐらいのズルやってるでしょ?
まあ処理が複雑化すればそんなもの無いに等しくなるだろうけどね。

たまにRubyは言語仕様の制限で遅いのは仕方が無い、って言う人がいるけど、
それは言語設計が悪いことを示しているわけだよ。

ライブラリ使って「~のが速い」って言うのはそのライブラリに完全に依存してるし
それはそのスクリプト言語の速さじゃない。
言い換えればライブラリを適用できない処理は全て遅いということになる。
今後も、その標準ライブラリは肥大化していくのかねえ。
469デフォルトの名無しさん:04/11/06 15:11:51
ならばPythonも使い物にならないね。Perlより遅いのは間違いないから。
470デフォルトの名無しさん:04/11/06 15:14:08
クスクス
471デフォルトの名無しさん:04/11/06 15:17:33
>>468
近年稀に見る低レベルな釣りだな
472デフォルトの名無しさん:04/11/06 15:19:27
ライブラリ使ってもPerlやPythonに勝てないなんて
これはもう日本発の言語らしく切腹するしかないな
473462:04/11/06 15:21:52
>>467
標準の物を使っちゃ駄目となると何もできないわけだが…
標準なんだから使っても移植性に問題は出ないだろうし
474デフォルトの名無しさん:04/11/06 15:29:30
うだうだ、うぜぇなぁ!
たかだかコンマ数秒の差だろう?

プログラム作る時の時間を考えてみろ、
rubyの方が1億倍ぐらい速いぜ!
475デフォルトの名無しさん:04/11/06 15:30:55
     最  高  言  語  R  u  b  y
476デフォルトの名無しさん:04/11/06 15:42:15
Ruby is Namber one
477デフォルトの名無しさん:04/11/06 16:50:05
>>468
大抵の場合、速くなくても困らない。
速度がほしいならスクリプト言語じゃなくて C で書くよ。
478デフォルトの名無しさん:04/11/06 17:07:58
歳くってくると、C で書く根性がなくなってくる...

一瞬で終わるタスクなら差は気にしないけど、数倍の差があると 1時間が数時
間か... 同程度の手間で書けるんだったら、速いスクリプト言語の方がいい
なぁ、となってしまう。
479デフォルトの名無しさん:04/11/06 17:21:29
1時間で書いて1秒で実行が終了するより、
10分で書いて1分で実行が終了するほうがまし
480デフォルトの名無しさん:04/11/06 17:25:54
同じ処理を
10分で書いて 10分で終了する言語
10分で書いて 60分で終了する言語
どちらを選ぶ?
481デフォルトの名無しさん:04/11/06 17:32:00
>>480
条件がそれしか提示されて無いなら当然前者を選ぶしか無いけど、
482デフォルトの名無しさん:04/11/06 17:39:04

> 479 :デフォルトの名無しさん:04/11/06 17:21:29
> 1時間で書いて1秒で実行が終了するより、
> 10分で書いて1分で実行が終了するほうがまし

これはつまり、C言語よりスクリプト言語の方がよい(場合が
多い)ということだ。

[例]Ruby>>>C言語

> 480 :デフォルトの名無しさん:04/11/06 17:25:54
> 同じ処理を
> 10分で書いて 10分で終了する言語
> 10分で書いて 60分で終了する言語
> どちらを選ぶ?

恐らく、どのスクリプト言語であろうとも、慣れて来れば
それなりの時間でコードを書けてしまう。(大差は無い)

となると、はやりスクリプト言語のなかでは実行速度が早い
ほうが良いということだ。

[例]Perl>>>Ruby

[結論]Perl最強!!
483デフォルトの名無しさん:04/11/06 17:43:49
何が有ろうとRubyが最強である事には変化がなくそれは永遠である。
484デフォルトの名無しさん:04/11/06 17:55:42
>>483
偽 Ruby 厨なんだよね?
ウザいの通り越して、気味悪いんだけど。
Ruby 使っている方々が可哀想だ。
485デフォルトの名無しさん:04/11/06 19:07:55
>>473
そうやって毎回似た様な処理をするライブラリを1つずつチェックするのか?
速いライブラリ探すのに手間が掛かるよりは
普通に書いた処理が普通に速いほうがいい

実際458から速い方法が見つかるまでかなり時間掛かってるし
この程度の処理を書くのに毎回あんな時間が掛かる様ではヤバイ
486デフォルトの名無しさん:04/11/06 19:10:47
つまりRubyは処理系も開発速度も遅くなる傾向があることがここに証明された
○結論
Rubyマジヤバイ
487デフォルトの名無しさん:04/11/06 19:13:13
>>458の事例から推測できる事は以下の通り

・Rubyは普通に書いたらPerlの4倍遅い。
・開発速度はPerlが5分だとすると、Rubyはその20倍は掛かる。
488デフォルトの名無しさん:04/11/06 19:14:59
>>485
> 実際458から速い方法が見つかるまでかなり時間掛かってるし

こんな根拠にもならん根拠出してまで必死になっている理由がよくわからん。
489デフォルトの名無しさん:04/11/06 19:15:31
クスクス
490デフォルトの名無しさん:04/11/06 19:15:30
どちらかというとお前の人生における生産効率の低さが気になる。
491デフォルトの名無しさん:04/11/06 19:16:58
>普通に書いた処理が普通に速いほうがいい

まあねえ・・
492デフォルトの名無しさん:04/11/06 19:18:58
>>485
RubyでPerlと同程度の実行効率を得るにはその20倍の時間が掛かる。

の方が適切かと。
493デフォルトの名無しさん:04/11/06 19:21:13
ライブラリに頼るってことは自分(=言語)に自信がない証拠。
494デフォルトの名無しさん:04/11/06 19:24:02
20倍の根拠がマジで分からん。
495458:04/11/06 19:24:18
得手不得手があるのは分かりきっているんだから、code 晒して実測した方が
このスレ的に面白いと思うんだが...

1つの事例でけなしあっても無駄なだけ。
496デフォルトの名無しさん:04/11/06 19:28:38
>>493はいつもライブラリを使わないでプログラムを書いているわけですね。w
497デフォルトの名無しさん:04/11/06 19:28:45
>>492
なんでそんなに必死なの?・・・・
498デフォルトの名無しさん:04/11/06 19:29:31
問題は、>>458が思いついたごく自然なコードでかなりの差が出たことだよ。
なるべくRubyが有利になるようにイテレーターを使ったりしていたにもかかわらず。

>>462, >>463が反則コードを書いてやっと追いつくが、
反則では比較にならない。

499デフォルトの名無しさん:04/11/06 19:35:39
イテレータって速度を出すためのものだとでも思っているんだろうか?
500デフォルトの名無しさん:04/11/06 19:38:20
Rubyに何か嫌な思い出でもあるんじゃね?
501デフォルトの名無しさん:04/11/06 19:38:28
>>494
>>458の投稿時間から>>466の結論が出るまで掛かった時間が約1時間半。
Perlと比べて大雑把に20倍は掛かる見積もり。
502デフォルトの名無しさん:04/11/06 19:41:37
同じ処理を
5分で書いて 0秒で終了する言語
1時間半で書いて 0秒で終了する言語
どちらを選ぶ?
503デフォルトの名無しさん:04/11/06 19:45:14
Rubyコードの手直しには3人程度の人間が必要だったことも考慮したい。
それでも1時間半。
504デフォルトの名無しさん:04/11/06 19:47:25
Ruby最強!!
`cat "/usr/share/dict/web2" | wc -l`
505デフォルトの名無しさん:04/11/06 19:48:07
いや、だからそんなものが何で開発時間の根拠になるわけ?
なんか痛いを通り越して電波飛ばしているようにしか見えない。
506デフォルトの名無しさん:04/11/06 19:56:18
501のせいで興ざめだな。
507デフォルトの名無しさん:04/11/06 19:56:46
>>505
>>464の通り、458は他人が提案するまで速い方法を思いつかなかった。
これだけでRubyでの開発は困難だという証明になる。
508デフォルトの名無しさん:04/11/06 19:58:07
いいよいいよ。
Rubyは無茶苦茶遅い。
それがいいたいんだろ。
509mu:04/11/06 19:59:35
どっかのスレで質問したときは Python と Ruby は同じくらいの速度だって
いわれたんですけど、あれは間違いだったのかな。
やっぱり Python のほうが Ruby より速いんだね。
510デフォルトの名無しさん:04/11/06 20:01:32
Perlも反則とやらを使えば早くなるんだろ?
比較する意味ないって。
511デフォルトの名無しさん:04/11/06 20:02:00
問題の提供から解答するまでruby信者がこのスレに常駐していることが前提ってことだろ?
そんなにひまな人が多いわけじゃないからな。

それと、ライブラリと入っても、Arrayオブジェクトだぜ?
普通の配列で、それを使って反則か?
512デフォルトの名無しさん:04/11/06 20:02:40
Rubyが遅すぎるのはまつもとが遊んでるせい
奴の家に乗込め
513デフォルトの名無しさん:04/11/06 20:03:11
514デフォルトの名無しさん:04/11/06 20:05:35
アロケーションやGCの効率が影響するくらいメモリを使って、
I/Oもそれなりにあって、かつ簡単に移植できるベンチマーク、
どこかにないかな。
515デフォルトの名無しさん:04/11/06 20:05:37
>>499
では>>458は何故イテレーターを使ったのかな。
おそらくRubyに準拠したスタイルで書きたかったんだろう。
それで遅いのはもはや罪であるとしか言い様がない。
516デフォルトの名無しさん:04/11/06 20:06:19
別にイテレータは有利にならないし。
517デフォルトの名無しさん:04/11/06 20:08:24
どのみちwhileでも遅いし。
518デフォルトの名無しさん:04/11/06 20:08:53
>>514
ディレクトリツリー全検索して
各ディレクトリ(とそのサブディレクトリ)が保持する
ファイルサイズと割合を表示していくプログラムとか。
519デフォルトの名無しさん:04/11/06 20:11:14
これrubyでもっと早くならない?
http://shootout.alioth.debian.org/bench/ary/
520デフォルトの名無しさん:04/11/06 20:11:57
                >>503,507,515
                    ↓
                          カタカタ____ ___
                  ∧_∧   ||\   .\  |◎ |
                  <.#`Д´>  ||  | ̄ ̄|  |:[].|
            ∧_∧ ┌(   つ/ ̄.l| / ̄ ̄/ ..| =|
   ∧_∧   ( TДT) |└ ヽ |二二二」二二二二二二二二」
  ( TДT)  ( つ つ   ̄]||__)   | ||       | ||
  (つ  つ  /  / /   / ̄\   / ||       / ||
  と_)_)  (___)__)  ◎    ◎.[___||     .[___||
            ∧
   / ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   | 工作員よ、もういいんだ・・・・・・
   | 本当に良く頑張った・・・もう充分じゃないか・・・
   | 楽になっていいんだ・・・
   | 忘れるんだ・・・何事もなかったように・・・・・・
521デフォルトの名無しさん:04/11/06 20:13:06
rubyはなんでこんなのが遅いの?ってのが結構あるから、
そこを地道に潰してけばpythonぐらいにはなるんじゃないの?
とりあえず>>519が遅い原因でも潰してみようぜ。
522でしゃばってみる:04/11/06 20:18:44
かなり強引だが、開発時間 = プログラムを解くために必要な思考時間 = プログラムの記述量として、
プログラムの要素数や行数を比べることのほうが適切だと思う。たとえば、Cだと
#include <stdio.h>
int main(void){
FILE *fp;
int ch;
fp = fopen(fname, "r");
while(1){
ch = fgetc(fp);
if(ch == EOF)break;
putchar(ch);
}
fclose(fp);
}
だいたいこうなるが、bashだと「cat $1」だ。
もちろん、変数名を縮めたり、適切に改行を入れなくても要素数(ifとかwhileとか)で考えるから無駄。もちろん可読性も。
523462:04/11/06 20:18:54
>>519
RubyのArrayはあまり速くない。処理によってはString#[]の方が速かったりする

>>521
他の言語みたいに書くと洒落にならないほど遅くなるのは事実かも…
俺もCのコードを移植しようとしてとりあえず動く程度を作ってみたら無茶苦茶遅かった。
Rubyスレの面々にはかなわないと思うがちょっとやってみる。
手際は悪いのでしばらく待ってくれ
524デフォルトの名無しさん:04/11/06 20:24:47
>>522
C言語だって短く書けと言われれば書けるだろ。

#include <stdio.h>
main() { int c; while ((c=getchar())!=EOF) putchar(c); }

bashで1からcat書けと言われたらこうは書けないし。
525デフォルトの名無しさん:04/11/06 20:32:25
まともな速度にするためにパズルを解かなきゃいけないなんて、あほらしくね?
526デフォルトの名無しさん:04/11/06 20:34:06
>>524
それは「cat $1」とは違う・・・

俺が反論するならCだって↓こうかけるだろといいたいところだ。
int main(int argc, char* argv[]) {
return execlp("cat", argv[1]);
}

使用できるライブラリの話をしだしたらとうてい公平な比較にはならない。
527デフォルトの名無しさん:04/11/06 20:34:43
>>524
そうじゃなくて要素数だよ。
524のCで思考すると、
1.まず、標準ライブラリを持ってくる。
2.変数cを宣言する
3.取ってきた文字をcに入れて、EOFでない間繰り返す
4.文字を出力する
5.繰り返し終わり
みたいに考える。
対してbashは
1.引数に指定されたファイルを開く
で終わる。
この差が開発時間ではないのか?ってこと
528デフォルトの名無しさん:04/11/06 20:35:30
勝ち負けとか煽るから話がそれてくるんだよ。
その言語の一番特徴的なコード書いて計測する。
ただそれだけの話だろ。
529デフォルトの名無しさん:04/11/06 20:49:14
例えば手前の文字とxorして出力したいという事になるとbashではお手上げ

//encode
#include <stdio.h>
main() { int c,k=0; while ((c=getchar())!=EOF) putchar(key^c),key=c; }

//decode
#include <stdio.h>
main() { int c,k=0; while ((c=getchar())!=EOF) key^=c,putchar(key); }
530デフォルトの名無しさん:04/11/06 20:58:58
それもう速度の話じゃなくなってるじゃん
531デフォルトの名無しさん:04/11/06 21:00:18
うん。すれちがいだ。
スクリプトの速度を比較するなんて、あんまり意味の無いスレだな。
532デフォルトの名無しさん:04/11/06 21:01:05
つまり仕様変更に弱いと
533デフォルトの名無しさん:04/11/06 21:19:10
rubysaikyou!
534デフォルトの名無しさん:04/11/06 21:47:15
>>521
いや、数行程度のベンチマークプログラムならものによって
Pythonが早かったりRubyが早かったりするが、ある程度の大きさの
プログラムならPythonのほうが遅くなることが多い。
535462:04/11/06 21:50:19
>>521
ゴメソ…これ、かなりチューンされているわ。
プロファイラで追ってみたがこれ以上速くするのは俺の頭じゃムリポ…○| ̄|_
536デフォルトの名無しさん:04/11/06 22:02:43
>>535
数値計算と Array の要素へのアクセスがほとんどだから
あれよりも速くするのは無理かと。
VM ベースになれば改善されるケースだと思う。
537デフォルトの名無しさん:04/11/06 22:05:38
>>519の普通に書いた版だとどんな感じのコードになるの?
538デフォルトの名無しさん:04/11/06 22:33:05
こんなもんかね。
n = Integer(ARGV.shift || 1)
x = Array.new(n){|i| i + 1 }
y = Array.new(n, 0)
1000.times do
  n.times do |i|
    y[i] += x[i]
  end
end
puts "#{y.first} #{y.last}"

Enumerable 大好き版。
n = Integer(ARGV.shift || 1)
x = Array.new(n){|i| i + 1 }
y = Array.new(n, 0)
1000.times{ y = y.zip(x).collect{|i, j| i + j } }
puts "#{y.first} #{y.last}"
539デフォルトの名無しさん:04/11/07 00:52:07
>>498
そうなんだよね。
洩れはrubyつかうけど、やはり遅いと感じるよ。
しかも、文法がメチャ難しいw
540デフォルトの名無しさん:04/11/07 00:57:56
>>538
これで、どれぐらい遅くなる???

もとリストでは、かな~り早いと感じたけど。
541デフォルトの名無しさん:04/11/07 01:06:03
>>539
> しかも、文法がメチャ難しいw
そうか。まあがんばれ。そのうち初心者を抜け出したときに
なんであんな簡単なので悩んでいたんだろうと思うときがくる。
542デフォルトの名無しさん:04/11/07 01:33:32
>>540
Array に正順アクセスか逆順アクセスかの違いだけなので
そんなに違わない。

$ time ruby19 -v a.rb 9000
ruby 1.9.0 (2004-11-06) [i686-linux]
1000 9000000

real 0m12.557s
user 0m12.560s
sys 0m0.000s

$ time ruby19 -v b.rb 9000
ruby 1.9.0 (2004-11-06) [i686-linux]
1000 9000000

real 0m13.440s
user 0m13.440s
sys 0m0.000s
543デフォルトの名無しさん:04/11/07 01:37:24
つーかそもそも逆順でアクセスしなきゃいけないのかな。
だとすれば n.times do |i| を n.downto(0) do |i| に。
544デフォルトの名無しさん:04/11/07 10:44:52
やっぱRubyは最強だな
545デフォルトの名無しさん:04/11/07 12:07:11
とうとうここまできたか↓
電車男で801(1ウホッ)
http://pie.bbspink.com/test/read.cgi/801/1099656889/
546デフォルトの名無しさん:04/11/07 13:23:27
おまえら延々とスレ違いネタやってて恥ずかしくないのか?
ここ逝け
http://pc5.2ch.net/test/read.cgi/tech/1068545254/
547デフォルトの名無しさん:04/11/07 14:11:32
糞スレ立てたのでよろしくね。

Python厨とRuby厨が仲直りするスレッド
http://pc5.2ch.net/test/read.cgi/tech/1099804004/
548デフォルトの名無しさん:04/11/08 01:08:15
>>541
それは分かるけど、測定はあくまでも
その言語にとって一番自然or普通な書き方で勝負するものだ。

549デフォルトの名無しさん:04/11/08 22:27:45
ライブラリ使って「速くなりました」って、アホかと思う。
550デフォルトの名無しさん:04/11/08 23:27:37
”標準”ライブラリならその言語の一部だろう。
551デフォルトの名無しさん:04/11/08 23:51:06
>>550
なら、インラインアセンブラを「標準」と歌えば
催促かい?www
552デフォルトの名無しさん:04/11/09 00:09:51
何か考えが浅いな。
553デフォルトの名無しさん:04/11/09 00:18:28
551が何を言いたいのかわからんが
インラインアセンブラが書けるライブラリが
”標準添付”の言語なら別に問題ないだろ?
ばかばっか
555デフォルトの名無しさん:04/11/09 16:35:45
インラインアセンブラってMicroSoft系のコンパイラでは”標準”だよな
Borland系なら別にアセンブラを用意しないといけないが・・・
556デフォルトの名無しさん:04/11/09 18:11:23
>>555
Microsoft系のスクリプト言語というと JScript とか VBScript とかだけど、
よく知らないけどインラインアセンブラなんて無さそうな感じだよ・・・

それとも別スレの話題かなにか?
557デフォルトの名無しさん:04/11/09 18:12:43
Forth なんかはスクリプト言語っぽいっちゃぽいし、アセンブラも書けそうな感じだけど
今日 PostScript 以外にメジャーな実装が無いか・・・
558デフォルトの名無しさん:04/11/09 18:33:44
javaVM上のスクリプト系言語の「最遅」決定戦キボンヌ。
Jruby , Jython, Groovy ...
559デフォルトの名無しさん:04/11/09 18:35:36
ドドネットもキボンヌ
560デフォルトの名無しさん:04/11/09 19:25:38
Groovy は遅いらしいな
自分で計ったことは無いけど
561デフォルトの名無しさん:04/11/10 19:26:00
>>558
一版スクリプト言語での最遅言語ってのもオモロいかもなw
562デフォルトの名無しさん:04/11/11 00:01:14
Rava
563デフォルトの名無しさん:04/11/12 00:37:18
まぁ、意図的に遅くするのは簡単なので、
無意味だろうな。と釣られてみるw

AA略
564デフォルトの名無しさん:04/11/12 07:32:12
rubyってうんこだったんだな
知らなかった
565デフォルトの名無しさん:04/11/12 23:06:55
>>564
んなこったーない。
566デフォルトの名無しさん:04/11/12 23:09:53
>>563
最速って企画でやらせて下から集計すればいいだけの話
567デフォルトの名無しさん:04/11/13 21:08:12
rubyは早くなったな!
568デフォルトの名無しさん:04/11/13 21:26:26
>>567
計った結果晒して!
569デフォルトの名無しさん:04/11/13 21:31:57
数字だけで判断するんやったら小学生でもできる。
570デフォルトの名無しさん:04/11/13 21:34:10
ばかだなあ
Ruby笑っちゃう程遅いよ
571デフォルトの名無しさん:04/11/13 23:49:58
何と比べて遅いんだ?
ネタはいらん。
572デフォルトの名無しさん:04/11/13 23:52:54
速度
C > Ruby >>>>>>>>>>>>> C++ >>>>>>>>>>>>>>>>>>>>>>>>> Python >>>>>>>>>>>>>>>>>>>> Java >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Perl
573デフォルトの名無しさん:04/11/14 00:34:17
>>572 はぁ?




速度
Ruby >>>>>>>>>>>>>>>>>>> C >>>>>>>>>>>>> C++ >>>>>>>>>>>>>>>>>>>>>>>>> Python >>>>>>>>>>>>>>>>>>>> Java >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Perl




574デフォルトの名無しさん:04/11/14 00:34:24
この期に及んでrubyが遅くないと信じている奴が居ること自体が信じられん。
ま、groovyよりは速い。それは認める。w
575デフォルトの名無しさん:04/11/14 04:31:35
2ch読んでC>>>JAVA>Python≧Rubyは分かった。

用途によってはPythonよりRubyの方が早いこともある程度。
Rubyはオブジェクト指向優先だから仕方ない。
Pythonとは目指す所が少し違うから。開発の規模も違うし。
JAVAもネイティブJAVAがまともに使えれば…
それでも漏れはJAVA嫌いだからつかわないけどw

で、Perlは、どの辺?全然ダメ?Ruby>Perl位?
個人的に書き殴れるんで好きなんだけどね。
Web限定ならPHPの方がいいですが…
PHPもどの辺か教えてーー
576デフォルトの名無しさん:04/11/14 06:51:03
>>575
なにを血迷ってるのか分かりませんが
C>>>Python≧Ruby>>>JAVA>>>C++>>>>PHP>>>>Perl
577デフォルトの名無しさん:04/11/14 09:43:15
つまらん。
578デフォルトの名無しさん:04/11/14 11:43:03
>>575

マトモなレスだと思ったが、1点突っ込んでおく。

> Rubyはオブジェクト指向優先だから仕方ない。

何故だ?
基本的にオブジェクト指向は好きでないが(思考の邪魔)
速度的には中立な筈だ。

> で、Perlは、どの辺?全然ダメ?Ruby>Perl位?
> 個人的に書き殴れるんで好きなんだけどね。

マジレスすると、Perlはメジャースクリプト言語の中では
上位クラスでしょうな。

# 煽りはスルーでよろしく。
579デフォルトの名無しさん:04/11/14 12:00:06
なぜオブジェクト指向が思考の邪魔になるのか理解不能
580デフォルトの名無しさん:04/11/14 12:58:03
おつむがたりないだけでせう
581デフォルトの名無しさん:04/11/14 13:09:24
ねたでしょ
582デフォルトの名無しさん:04/11/14 14:00:25
C>C++>JAVA>>>(省略)>>>lua>>>Perl>>>Python>>>Ruby>>>PHP

実際計ったらこんな感じだった
583デフォルトの名無しさん:04/11/14 15:40:43
そういえば何でPHPみたいな糞が流行ってるんでしょうな
584デフォルトの名無しさん:04/11/14 15:52:52
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PHP
585デフォルトの名無しさん:04/11/14 15:55:33
>>583
web開発に特化しているだけあって、webでは使うと楽だよ。
言語の程度はともかくとして。
586デフォルトの名無しさん:04/11/14 16:01:13
PHPはWeb用のCみたいな感じだね。Web以外の用途にはほとんど使う気しない。
587デフォルトの名無しさん:04/11/14 17:09:27
そういえば何でHSPみたいな糞が流行ってるんでしょうな
588デフォルトの名無しさん:04/11/14 17:29:33
↑馬鹿の一つ覚えプププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
589デフォルトの名無しさん:04/11/14 18:55:26
↑馬鹿の一つ覚え
590デフォルトの名無しさん:04/11/14 18:59:19
そういえば何で「↑馬鹿の一つ覚えプププ」みたいな糞が流行ってるんでしょうな
591デフォルトの名無しさん:04/11/14 19:31:24



     ---     最   高   言   語   R   u   b   y   ---


.
592デフォルトの名無しさん:04/11/14 22:06:58
LISPer いますか?
593デフォルトの名無しさん:04/11/14 23:06:45
おれのいくスレはいつもRuby関係で荒れるな(w
どうにかしろよ
594デフォルトの名無しさん:04/11/14 23:26:19
>>592
いたらどうする
595デフォルトの名無しさん:04/11/14 23:48:46
>>592
いるけど最速だの最高だの最強だのと主張する気はないぞ
596デフォルトの名無しさん:04/11/15 00:02:13
LISPerは >>592 を除いてみんな大人
597デフォルトの名無しさん:04/11/15 23:42:10
LISP って実用性が低いって本当ですか?
598デフォルトの名無しさん:04/11/15 23:43:58
ねこみみです。
599デフォルトの名無しさん:04/11/16 02:04:43
本家 Yahoo! のショッピングに Lisp が使われる程度には実用性がありません。
600デフォルトの名無しさん:04/11/16 02:06:11
できる人間は道具を選ぶ権利がある。
そうでない人間は道具に従うことになる。
601デフォルトの名無しさん:04/11/16 09:17:21
LISPって速いの?
602ChaosicSoul ◆/yaJbLAHGw :04/11/16 13:09:57
Re:>601 LISPにはバイトコンパイルがあるから、微妙なところ。

ところで、C言語のインタプリタってどこにあるのですか?
603デフォルトの名無しさん:04/11/16 13:22:53
これのことじゃないの?
ttp://root.cern.ch/root/Cint.html
604バカのVC:04/11/16 14:02:01
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
605デフォルトの名無しさん:04/11/16 18:10:38
うちのperlで>>381がうまく動いてないみたいなんですが、
何が原因でしょうか?(いつまでたっても終わらない)
WindowsXPに入れたActivePerlです。
バージョンは

perl -v

This is perl, v5.8.2 built for MSWin32-x86-multi-thread
(with 25 registered patches, see perl -V for more detail)

Copyright 1987-2003, Larry Wall

Binary build 808 provided by ActiveState Corp. http://www.ActiveState.com
ActiveState is a division of Sophos.
Built Dec 9 2003 10:19:40
606デフォルトの名無しさん:04/11/16 18:51:42
もっと小さい入力でやってみたら?
(12,6,0)じゃなくて(2,1,0)とか
607デフォルトの名無しさん:04/11/16 19:52:48
(11,6,0)でやったら終わりました。

(12,6,0)ではスタック溢れか何かでしょうか?
でもインタプリタのくせにエラー出ないのはおかしいですよね。
Ctrl+Cで止めようとするとアクセス違反のダイアログが出るし。
これはPerlのバグ?
自分内でのPerlの信用度が低下しました。
608デフォルトの名無しさん:04/11/16 20:06:49
ActivePerlの最新版5.8.4build 810でやっても同じでした。
ちゃんとテストしてないのかな。
609デフォルトの名無しさん:04/11/16 20:35:18
cygwin だとちゃんと動くんだよね

~$ perl -v
This is perl, v5.8.5 built for cygwin-thread-multi-64int
610デフォルトの名無しさん:04/11/16 20:38:24
そうでしたか。
この件でActiveStateの信用ガタ落ちしました。
もうあそこのは使わないことにします。
ありがとうございました。
611デフォルトの名無しさん:04/11/16 20:40:37
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Perl
612デフォルトの名無しさん:04/11/16 20:51:31
cygwinのperlでやってみました。
おおざっぱですが
ruby 1.8.1 (2003-12-25) [i386-mswin32]は15秒
perl, v5.8.5 built for cygwin-thread-multi-64intは15秒
Gauche scheme interpreter, version 0.8.1 [euc-jp]は3秒
となりました。(WindowsXP Pro Pentium M1.6G)
613デフォルトの名無しさん:04/11/16 21:01:48
Perl 版は >>381 より >>370 のほうが速い
配列の参照回数が減るから
614613:04/11/16 21:07:06
ごめん>>613は忘れて
615デフォルトの名無しさん:04/11/17 14:22:50
ごめん LISPer は忘れて。
616デフォルトの名無しさん:04/11/18 04:02:37
ごめんこのスレは忘れて
617デフォルトの名無しさん:04/11/18 18:48:52
CCleanは速いみたいだけど
ぜんぜん読めえや(w
速さは言語難易度と比例するのか
6181:04/11/18 22:55:24
 >  スクリプト言語でいちばん速いのはどれでしょうか?
 >  これって、トリビアの種になりますよね?よろしくお願いします。
619デフォルトの名無しさん:04/11/19 01:09:49
>>618 Ruby 次期バージョン
620デフォルトの名無しさん:04/11/19 16:38:53
LINGO
621デフォルトの名無しさん:04/11/20 00:18:05
>>617
hellow world と 1~1000まで合計するプログラムキボン!
622デフォルトの名無しさん:04/11/22 09:59:25
>>617
アセンブラ最強伝説は揺るがないってことでフジワラ豆腐店~
623まとめてやったぞ:04/11/22 10:54:04
おまいらCやC++もスクリプト言語として考えて順列つけてるのか?
一応Cは除外したが。あとweb限定で考えてるけどいいんだよな?

そうすると JAVA>PHP>Perl>Python≧Ruby

Rubyに関してはオブジェクト指向を速度より優先して作ってるから遅くても仕方ない。
Pythonも速度を気にするならCで書いて、それを読みこめって感じだからね。
最近はJAVAのとこPHPに書き直したりしてるし、そこまで速度は変わらないようだ。
624デフォルトの名無しさん:04/11/22 13:58:45
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>> Java
625デフォルトの名無しさん:04/11/22 14:30:08
626デフォルトの名無しさん:04/11/22 18:08:35
使いたいときに使いたい言語を使えば良い。それだけのこと。
627デフォルトの名無しさん:04/11/22 18:19:09
使いたいときに使える言語がない。それだけのこと。

勉強せぃってヵ。
628デフォルトの名無しさん:04/11/22 21:30:12
ハノイの塔で競うのはどうか
グラフ探索とか
ライブラリだけでできない様な処理がいい
629デフォルトの名無しさん:04/11/22 21:34:03
ヾ( ゚д゚)ノ゛ハヤクカケー
630デフォルトの名無しさん:04/11/22 21:38:52
速度が必要ならCで書いて読み込めばいいっていわれても、
普段スクリプト言語使ってると、いまさらCで書くのが面倒で馬鹿馬鹿しくなってくるんだよな。
631提案だ:04/11/22 21:40:57
>>630
そうそう。近未来的なスクリプト言語では、
スクリプト ソースの中に拡張モジュールのコードを埋め込めるのがいい。
実行時に動的にコンパイルしてくれる。
632デフォルトの名無しさん:04/11/22 21:53:56
実行時に毎回コンパイルすんの?
633デフォルトの名無しさん:04/11/22 21:57:04
>>631
拡張モジュールかはともかく、
似たものは既にPerlにあるよ。
634デフォルトの名無しさん:04/11/22 21:57:28
>>633
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Perl
635631:04/11/22 21:58:41
>>632
どっかにキャッシュしておけばいい。

>>633
それはどうやってやるの?
636デフォルトの名無しさん:04/11/22 21:58:59
30秒と経たないうちに反応があるというのも怖いな。
637デフォルトの名無しさん:04/11/22 21:59:34
>>635 Inline.pm
638631:04/11/22 22:01:45
>>637 情報ありがとう。面白そうだから調べてみる。
639デフォルトの名無しさん:04/11/22 22:07:00
スクリプトの利便性を捨ててるよな>Inline.pm
特定環境でしかウゴカネエだろ
640デフォルトの名無しさん:04/11/22 22:10:46
Perlすごいね!
どうやってるんだろう!

って、動的な言語なら大したことねーですよ(プ
641デフォルトの名無しさん:04/11/22 22:20:14
意味不明。馬鹿?
642デフォルトの名無しさん:04/11/22 22:25:29
>>641
Ruby ?????????>>>>>>>>>>>>>>>>>>>>>>>>>Perl
643デフォルトの名無しさん:04/11/22 22:34:22
Perl6は何でも埋め込めるんでしょ
644デフォルトの名無しさん:04/11/22 22:37:00
それはparrotではないのか。しかも違うし。
645デフォルトの名無しさん:04/11/23 01:08:17
>>623
だ~か~ら~
速度が遅いのをオブジェクト指向の性にするなって!

散々既出だろ、アフォ目
646デフォルトの名無しさん:04/11/23 07:02:50
DOSコマンド最速
647デフォルトの名無しさん:04/11/23 11:49:34
オブジェクト試行
648デフォルトの名無しさん:04/11/24 23:36:36
オブジェクト女学院
649デフォルトの名無しさん:04/11/25 20:22:02
オブジェクト奉行
650デフォルトの名無しさん:04/11/26 00:59:19
オブジェクト趣向
651デフォルトの名無しさん:04/11/26 01:04:10
オブジェクト太郎
652デフォルトの名無しさん:04/11/26 20:22:38
オブジェクト仮面
653デフォルトの名無しさん:04/11/26 23:34:20
>>648
ワロタw
654デフォルトの名無しさん:04/11/27 00:16:33
あーあ、台無しだ
655デフォルトの名無しさん:04/11/27 01:53:04
最強オブジェクト指向 Ruby
656デフォルトの名無しさん:04/11/27 02:00:22
ぶち壊しトドメはこれにつきるね。>るび
657デフォルトの名無しさん:04/11/27 23:15:56
>>656
ストッパー、師範認定!
658デフォルトの名無しさん:04/11/30 13:42:48
いまさらだが、実行速度を出すコーディングができるというのと、
普通にコーディングしたきの実行速度って違うよな。

あと、Perl で Inline::C 使うのと、
ネイティブコードになってる外部モジュール使うのって、あんま差ないよな。
659デフォルトの名無しさん:04/12/01 18:40:23
>>658
前半、比較対象がそもそも違う。
後半、意味不明
660デフォルトの名無しさん:04/12/01 19:02:42
配布されてるバイナリやmakefileをそのまま使わずに
CPUに最適化させるとかなり高速化するよな
661デフォルトの名無しさん:04/12/01 23:10:26
>>660
何の話をしてる?
662デフォルトの名無しさん:04/12/03 04:58:25
たまたま見つけたというかgoogleの最初のほうにあったのを貼っとく
http://www.lib.uchicago.edu/keith/crisis/benchmarks/tak/
663デフォルトの名無しさん:04/12/03 05:12:01
うちの環境でそれやってみたけど
Perl 506678 microseconds per iteration
Python 1029786 microseconds per iteration
Tcl 1199482 microseconds per iteration
だったよ
664デフォルトの名無しさん:04/12/03 05:24:49
ちなみにCは15513 microseconds per iterationだったよ
665デフォルトの名無しさん:04/12/23 15:30:55
いろんな言語がparrotで実行されるようになったら、
ベンチマークの差もなくなってくるのかな。
666デフォルトの名無しさん:04/12/23 15:57:05
Io試してみたけど遅いぞ

tarai := method(x, y, z,
 return if(x <= y, y,
  thisBlock(
   thisBlock(x-1, y, z),
   thisBlock(y-1, z, x),
   thisBlock(z-1, x, y))))
tarai(12,6,0)

=> 2.5 / ruby 1.8.1 (2003-12-25) [i386-mswin32]

Ioはこっから落としたやつ
http://www.iolanguage.com/Downloads/
IoDesktop-2004-12-16
667デフォルトの名無しさん:04/12/23 19:15:04
http://www.iolanguage.com/Comparisons/Performance.html
ここのベンチも2年前のだからあてになんないね
668デフォルトの名無しさん:04/12/23 20:15:00
まだ、タライ回しとかやってたのかw
もっと実用的なベンチマークは無いのか?
669デフォルトの名無しさん:04/12/23 20:26:27
実用的なベンチって何?
670デフォルトの名無しさん:04/12/23 20:46:56
MD5の実装
671デフォルトの名無しさん:04/12/23 21:23:28
じゃ、ためしにソース晒せ
672デフォルトの名無しさん:04/12/23 23:10:39
めんどくさいから文字列連結にしよう
673デフォルトの名無しさん:04/12/28 22:03:30
タライ回しって、関数呼出ぐらいしか計れないよねぇ~
674デフォルトの名無しさん:04/12/28 23:48:00
function cat(l, r) { return l + r; }
var s = "", max = 1000000;
for (var i = 0; i < max; i++) { s = cat(s, i); }
675デフォルトの名無しさん:04/12/28 23:48:55
>>669
LISP インタプリタ
676デフォルトの名無しさん:04/12/29 12:10:06
LISP自体が(ry
677デフォルトの名無しさん:05/01/08 13:08:18
あげてまで何がいいたいんだ?
678デフォルトの名無しさん:05/01/17 02:41:16
>>677
彼はLISP使いに嫉妬するロートルプログラマー39歳
679デフォルトの名無しさん:05/03/01 15:36:42
保守
680デフォルトの名無しさん:05/03/13 06:53:33
>>678
貴方もLISP使いに嫉妬するロートルプログラマー39歳
681デフォルトの名無しさん
たらい回し関数でGO!