>>571 ソースコード見たが
JavaのRandomクラスはもともと遅いんだよな。
それから一回実行したら二度と生成し直さなくていいものは
staticにして欲しいな。
配列もBufferクラスを使えば早くなる。
それすら使ってないからどうも怪しい。
最大ヒープメモリサイズの指定もしてなさそうだし。
JVMに-serverオブションつけて実行した結果もないのは
自分の都合にあわせてわざとやってるのか? って思うんだが。
それにしてもJava One Tokyoで発表された資料と結果が全然ことなるな。
JavaOne TokyoではJava5からはSun製JVMのほうが高速、あるいは同等である
ケースが紹介されていたのだが。
今では低速であるケースはほんの一部になっている。
574 :
仕様書無しさん:2006/03/30(木) 13:38:20
>>571 # Slashdot での大論争。これは今までで一番愉快な
Java 対 C++ の議論に違いありません。
C++ 愛好家は必死に「不公平だ、こっちはメモリ管理を
手動でやらなきゃいけないのに」と主張しています。
公平を期するための彼らの提案は - System.gc() の
呼び出しを山ほど突っ込んで Java 側を遅くするというも
のでした(お気づきでない方のために。Java は System.gc()
を呼び出さなくてもメモリを回収します。 System.gc() の呼び
出しを追加してもメモリ回収の速度が遅くなるだけです)。
続く抗議もすべて、このベンチマークが Java をひいきしてい
るという一点に集中しているようでした。しかし奇妙なことに、
3年前までは当時の JVM をテストしても C++ の方が速いとい
う結果が出たものです。このノイズの山を掘り返せば、有意義
なコメントが見付かるかも知れません
# さらに続く議論。この事件から生じた騒動(または余分なキャラ)
で大儲けできた人がいるかも知れませんね
# Java と .NET のガベージコレクションに関する調査
# WebSphere は自動的に負荷分散の最適化を行うことで、ハードウェア要件の低減をねらいます
#
# Java 1.5 は 20% 高速化した模様
http://www.javanews.jp/javap/newsletter043.html
>>572 Sun JDK 1.4.2 Server VM, Sun JDK 1.5.0 Server VMってあるじゃん。
あと、Bufferクラスの使い方教えてくれ。
>>572 IIBM とか Sun の JDK でも Server VM では
C++ と遜色ない性能をだしているわけだから、
そういう問題ではないのではないかと思うけど。
テストの内容が Sun の Client VM にだけ不利な内容だった、
という解釈は無理があるような・・・
577 :
571:2006/03/30(木) 17:56:36
ちゃんと自分の環境を調べてみると、JDK とは別に何かと一緒に入れた
JRE 1.5 があって、eclipse 起動するとそっちを使って動いていますた。
速いという話の IBM の JRE を入れて、そっちで eclipse を起動すると・・・
んー確かに起動が少し速い。pluginの読み込みってI/O boundsな処理かと
思っていたら案外そうでもないのか。感覚的には1.5倍くらい。
IBM はもっとこれバラ撒いてくれればいいのになぁ・・
>>578 Bufferクラスの使い方はわかってたんだ…言い方が悪かった、すまん、言い直す。
Bufferクラスで配列より早く操作する方法を教えてくれ。
サンプルコードを書いてくれるとさらに嬉しい。
>>579 「配列より速く」っていったって、
適当な配列とその配列内での有効な要素の個数とのペア
ex.
class DataHolder { public byte[] buffer; public int count; };
なんかを用いれば、Buffer で出来る操作はだいたい似たようなコストで
実装できるよ。でもいつもいつもそんなの自前でやってられないから
Buffer 使ったほうが早いし同じくらい速い。
581 :
仕様書無しさん:2006/03/31(金) 22:52:38
>>579 お前の目は節穴か?
スキンヘッドが作ったサイトにサンプルコードも載ってるだろ。
>>580 >>572が "配列もBufferクラスを使えば早くなる。" と言っていたから、
>>579で "Bufferクラスで配列より早く操作する方法を教えてくれ。" と書いたんだが…
>>581 普通にBufferクラスを使うことは出来るんよ。
で、普通に使ったら(俺のコードが悪いのかもしれないが)配列よりBufferクラスの方が遅いから、
配列より早く使う方法のサンプルコードを書いてくれと…
>>579は言葉が足りなかった、すまん。
俺も知りたい
チャネルでどうにかしろってことでわ
( ̄ー ̄)ニッ、ちゃねらー
586 :
仕様書無しさん:2006/03/32(土) 21:10:15
教えてクンが必死過ぎるスレはここですか?
そうですが何か?
教えて君にはすでにヒントを与えてヤッタがな
どれがヒントなのかもわからない
どれがヒントか明示したれや!暗黙の宣言なんて、Fortranじゃあるまいしw
知ったか君と教えて君の取り合わせは不毛だと思う今日この頃・・・
カマトト君はw
592 :
仕様書無しさん:2006/04/03(月) 12:57:26
Channelがヒントじゃん
>>592 DatagramChannel
FileChannel
Pipe
SelectableChannel
ServerSocketChannel
これらでどうしろと?
594 :
仕様書無しさん:2006/04/06(木) 17:04:26
見事に止まってる
軽いから
596 :
仕様書無しさん:2006/04/10(月) 11:01:23
597 :
仕様書無しさん:2006/04/10(月) 11:19:26
マジで?
高卒がJava叩きしてたの?
サイテーだね
(・∀・)イジョウジサクジエンデシタ
>>582 Buffer使えば速くなるとか言ってるのは、あのページの内容がJVMが変わっても
結果は変わらないと信じてるピュアな奴等だから、ここらへんで許してやれ。
結論としては、DirectByteBufferは遅い。
java.version=1.4.2_11
普通の Buffer オブジェクト
Total time = 750
byte[]
Total time = 312
Direct Buffer オブジェクト
Total time = 1047
java.version=1.5.0_06
普通の Buffer オブジェクト
Total time = 781
byte[]
Total time = 296
Direct Buffer オブジェクト
Total time = 1688
java.version=1.6.0-beta2
普通の Buffer オブジェクト
Total time = 703
byte[]
Total time = 328
Direct Buffer オブジェクト
Total time = 766
600 :
仕様書無しさん:2006/04/10(月) 14:37:34
IntetgerBufferやDoubleBufferなどの
クラスでのベンチも提供してくれ
DirectByteBufferだけじゃつまらぬ
よくわからないんだが、I/O以外で使うの?
602 :
仕様書無しさん:2006/04/11(火) 22:34:19
603 :
仕様書無しさん:2006/04/13(木) 00:44:04
軽い軽い
問題ない
とりあえず起動が遅いままでは軽いとは呼べないし
誰も納得しない。
そのうち、PCだとJAVAのシステム自体がC++/CLIで書かれるようになるんだろ?
そうすると、JAVAの実行は
おまいらのかいたプログラム>JAVA仮装マシンコード>JAVAVM>CLI>CLI実行エンジン>機械語 という複雑きわまりない仕組みを通ることになるな。
( こ こ じ ゃ ま )
>>605 言語と実行形態を混ぜて書くな。何を主張したいのかよくわからん。
>そのうち、PCだとJAVAのシステム自体がC++/CLIで書かれるようになるんだろ?
本当?
位置づけ的には
JAVA仮装マシンコード=IL
でしょ?
これからはVistaになる。
Vistaの標準コンパイラはC++/CLIだ。
いやおうなしにJavaコンパイラもJVMもVistaで動かすならばCLIになる。
つうことは、2重の仮想マシンで動く劇的に重い時代遅れのものになる。
糞高いLinux専用サーバ上ででも金持ちが動かす道楽者専用になるな。
本来、JavaとSolarisとSPARCという閉じた世界があって、その閉鎖性を強引に
クライアントであるPC側に吸収させようというのがJava啓蒙の理由なんだが理解してるか?
PCベースで無償のJavaつかってるということは、ただの道化なんだよ。
パフォーマンスが悪い?ではSolarisをどうぞ。
まだうまくいかない?それはx86のせいです。SPARCをどうぞ。
これがSUNの戦略であり実態でもある。
お先棒担いでるJava厨房はおぷそ厨房にも似て哀れそのもの。
無償で宣伝の手伝いm9(^Д^)ぷぎゃー
608 :
仕様書無しさん:2006/04/13(木) 13:49:04
>>607 馬鹿でしょVistaになろうとC++/CLIでVMを書き、アプリレイヤーで実行する必要は無い
CLI VMと並列なレイヤーにJavaVMを置けば良い
C++/CLIでVM書いた時点で、VMはCLIで生成されるわけだが。
JavaVM自体をどうやって生成するのか詳しく教えてくれ。
多分そのうち、ネイティブx86コード生成はやめるだろうからな。
M$様の都合で。
610 :
仕様書無しさん:2006/04/13(木) 14:50:29
>>604 0.0001秒程度しか遅くないなら
問題ないじゃん
611 :
仕様書無しさん:2006/04/13(木) 14:51:07
>>605 > そのうち、PCだとJAVAのシステム自体がC++/CLIで書かれるようになるんだろ?
プ そんなネタを吹聴して騙されるエンジニアがどれだけいると思っているんですか
VistaにはJavaじゃないことぐらい小学生でも知ってるぞ?
小学生は知らないと思います
615 :
仕様書無しさん:2006/04/13(木) 19:04:04
>>609 という事はアセンブリで書くとアセンブリのコードができて、Cで書くとCのコードが出来るんでしょうか
>>615 どう答えてやったらいいか途方に暮れる質問するなよ・・・
>615
基本を学んでから出直してくれ
レベルが低すぎてもうだめぽ
C++/CLIなんて使っている人いるの?
OSネイティブの文字コードでどう高速処理するかが今後のテーマだな
UTF-16BEにいちいち変換していては巨大なログファイルは管理できない
UTF-8のほうがUTF-16より表現できるコード範囲が広い。
と、当たり前のことがいま頭に浮かんだ。処理はどっちが早いのかね。
本当なら16のほうが固定長で早いんだけど、エンディアンのことまでからむと、さてどうか
621 :
仕様書無しさん:2006/04/21(金) 01:44:30
622 :
仕様書無しさん:2006/04/21(金) 16:21:02
>>620 UTF-16もサロゲート使うから同じだろ
ソフト多層化という方向はその歴史始まって以来、ずっと続いている。
javaの発生もその一つだろ。
そういう文脈の中で重いとか軽いとか議論していて楽しいのか?
おじゃば様が乱立させた煽りスレに対するレスなのかそれは?
625 :
仕様書無しさん:2006/05/08(月) 16:23:10
>UTF-8のほうがUTF-16より表現できるコード範囲が広い。
?
629 :
仕様書無しさん:2006/08/10(木) 01:21:54
630 :
仕様書無しさん:2006/10/13(金) 20:18:45
Javaプ
631 :
仕様書無しさん:2006/10/15(日) 00:38:20
javap.exeのことか?
632 :
仕様書無しさん:2006/10/15(日) 14:37:22
もうJavaは十分軽い軽い
昔に比べたらな
java だから重いって言ってるやつは何で作っても結局重い。
「Javaの存在自体が軽視されてるから」
とか、下らない煽りを思い付いた
636 :
仕様書無しさん:2006/11/12(日) 13:39:18
>>635 「お前の存在自体が無視されてるから」
とか、下らない煽りを思い付いた
ホント下らないな