トップページ⇒tech
1001コメント234KB

Javaでは作るのが困難なものを挙げるスレ

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/11/20(日) 03:45:10
言語なんてものは、作るものに合わせて、適切なものを選択すべき。
なのに、なんでもかんでもJavaでやろうとする人がいます。
彼らの目をさまさせてやりましょう。
0153デフォルトの名無しさん2005/11/25(金) 01:41:14
IEEE,ハードウエア記述言語の「SystemVerilog」と「Verilog」規格を承認:IT Pro
"IEEE,ハードウエア記述言語の「SystemVerilog」と「Verilog」規格を承認

"
http://itpro.nikkeibp.co.jp/article/USNEWS/20051110/224323/

きがつけばSystemVerilogなるものが

Java関係はまだでないか。
0154デフォルトの名無しさん2005/11/25(金) 02:08:44
>>152
いやだ。やりたい。いつできるかわからないが。


ついにみつけだぞ。Java版VHDL!

こいつはすげえ。

JAVAHDL: THE NEXT HARDWARE DEVELOPMENT REVOLUTION
Java based Hardware Design (JHDL):
  THE NEXT HARDWARE DEVELOPMENT REVOLUTION?
http://www.iis.ee.ic.ac.uk/~frank/surp99/article1/sm1598/



JHDL Home Page
http://jhdl.org/

0155デフォルトの名無しさん2005/11/25(金) 02:09:03
JHDLは
BRIGHAM Young Universityが作った?
0156デフォルトの名無しさん2005/11/25(金) 02:31:41
あ?GUIでJavaが最適なわけねえだろ!
0157デフォルトの名無しさん2005/11/25(金) 02:32:10
言語は道具に過ぎないということを忘れている人がいるな
0158デフォルトの名無しさん2005/11/25(金) 02:38:29
>>156
Windows以外を考えたら、最適だよ。
0159デフォルトの名無しさん2005/11/25(金) 02:44:13
プリウスのバグは有名だな。

ところでargv[0]で動作変えるアプリケーションってどう作るの?
クラスいっぱい?
0160デフォルトの名無しさん2005/11/25(金) 03:43:37
Apache Jakarta Commons CLIを
使えばコマンドラインアプリケーションが
簡単に作れる。

っていう話とは関係ない?
0161デフォルトの名無しさん2005/11/25(金) 20:46:22
>>159
> ところでargv[0]で動作変えるアプリケーションってどう作るの?

どういういみ?
0162デフォルトの名無しさん2005/11/25(金) 22:41:59
ex と vi とか。
0163デフォルトの名無しさん2005/11/25(金) 22:52:31
なんだかjavaどうこう以前の問題を質問されているような希ガス
0164デフォルトの名無しさん2005/11/26(土) 03:09:38
1つの実行ファイルで複数のコマンドの機能を実現するアレだな。
フロッピーイメージにする場合で威力を発揮するという。
懐かしい。
0165デフォルトの名無しさん2005/11/27(日) 00:47:40
javaでパンこねるのめちゃめちゃ辛くて
何度諦めようかと思ったよ
0166デフォルトの名無しさん2005/11/27(日) 01:08:31
>>165
ぱんつくったことある?
0167デフォルトの名無しさん2005/11/27(日) 01:19:50
パンツはJAVA煮込みが一番美味しいよ
0168デフォルトの名無しさん2005/11/27(日) 01:26:24
パンツ食ったことは無い。
0169デフォルトの名無しさん2005/11/27(日) 22:30:27
>>168
ねえ、ちゃんと風呂入ってる??
0170デフォルトの名無しさん2005/11/27(日) 22:32:59
唇を両手人差し指で広げて
「女のパトカー」って言って見ろ
0171デフォルトの名無しさん2005/11/27(日) 22:33:38
姉とは風呂入ってません。
0172デフォルトの名無しさん2005/11/27(日) 22:36:31
>>170
おんなのふぁとかー?
0173デフォルトの名無しさん2005/11/27(日) 23:03:52
>>165
Java Teaで?
0174デフォルトの名無しさん2005/11/29(火) 11:22:15
ActiveX
0175デフォルトの名無しさん2005/11/30(水) 09:39:52
アセンブリ、Cを上回る演算速度
0176デフォルトの名無しさん2005/11/30(水) 10:32:33
>>175
アセンブリは知らんが条件によってはCを上回る場合もある

つーかCだってマシン語より遅いじゃん
0177デフォルトの名無しさん2005/11/30(水) 11:36:12
>>176
aho
0178デフォルトの名無しさん2005/11/30(水) 12:14:40
>>177
homo
0179デフォルトの名無しさん2005/11/30(水) 15:19:15
アセンブリもネイティブじゃなければ遅いよ。
JavaでもJavaチップだったら速い。
0180デフォルトの名無しさん2005/11/30(水) 15:27:47
> 42
ttp://www.bytonic.de/html/screenshots.html
0181デフォルトの名無しさん2005/11/30(水) 23:33:17
メモリの内容をひたすら破壊すること
0182デフォルトの名無しさん2005/11/30(水) 23:57:17
>>179
> アセンブリもネイティブじゃなければ遅いよ。
すいません、何が言いたいのか分かりません><
0183デフォルトの名無しさん2005/12/01(木) 00:05:56
>>182
世の中にはエミュレータとかシミュレータというものがあってだな・・・
0184デフォルトの名無しさん2005/12/01(木) 00:08:14
↑ baka
0185デフォルトの名無しさん2005/12/01(木) 00:24:09
ほう、エミュレータ上で動くOS上でJavaを動かしたときのオーバーヘッドは
エミュレータ上で動くOS上でアセンブラ(ネイティブ)プログラムを動かしたときより少ないというのか。
0186デフォルトの名無しさん2005/12/01(木) 00:24:17
>>184
おまえがな
0187デフォルトの名無しさん2005/12/01(木) 00:24:49
>>185
???
0188デフォルトの名無しさん2005/12/01(木) 00:27:46
ネイティブじゃないアセンブラ
晒しあげ
0189デフォルトの名無しさん2005/12/01(木) 00:31:01
あーなるほど、「CASLは遅いよ」とでも言いたいのか。
0190デフォルトの名無しさん2005/12/01(木) 00:44:24
実行しながらどんどん最適化入れるからな、Java、というか中間言語系は
GCやるときにキャッシュのヒット率を考慮した配置するとかあるしね

それにネイティブなバイナリを要求しないからこそazulがあるわけだが
0191デフォルトの名無しさん2005/12/01(木) 01:27:09
COBOLでかかれたのシステムの保守。
0192デフォルトの名無しさん2005/12/01(木) 01:55:50
>>177
今、Javaの性能は向上しており
プログラムが大規模になればなるほど
JavaとC/C++との速度差は縮小する。
逆にJavaが早くなることも。
今、Javaがさらに高速化したことにより
C/C++プログラマがJavaとほぼ同じコードだけで
C/C++でJavaよりパフォーマンスで大きく
手に取るように高くすることは困難になってきている。
メモリ解放のタイミング、解放量を誤れば
Javaよりも遅くなってしまうのがC/C++だ。
それを上手にコントロールできるC/C++プログラマは
実にすくない。
しかも大規模となると集団で開発だ。
おのおのが自分が開発する部分にしかほとんど目をつけないため
各々が狭い視野でしかメモリ管理をしないようになる。
プログラムがこのように巨大化しする大規模開発となると
全体的に、統合的見てどこでどうメモリを確保しどこでどう解放すればいいか、
見極めるのが困難になり、下手をするとJavaよりも重たいプログラム
しかつくれなくなってしまう。

0193デフォルトの名無しさん2005/12/01(木) 02:01:09
Javaより遅くはなるけど、重くはなかなかならないよね
0194デフォルトの名無しさん2005/12/01(木) 02:02:48
Javaより重いものはない
0195デフォルトの名無しさん2005/12/01(木) 02:02:56
>>188
アセンブリが速いのは、ネイティブのときだけであって、x86のアセンブリをMIPSなんかで動かそうとすれば当然遅い。
結局アセンブリは言語の特性で速いのではなくて、ネイティブだから速いというだけ。
JavaもJavaネイティブなJavaチップで動かせばその環境で最速。
0196デフォルトの名無しさん2005/12/01(木) 02:19:55
Javaチップはどこにあるの

Javaチップ搭載の市販PCってある?
0197デフォルトの名無しさん2005/12/01(木) 02:29:56
ネイティブじゃないものをアセンブリ言語と呼ぶスレはここですか?

エミュレーター上で動かすものを「そのCPUの機械語(アセンブリ言語)」と呼ぶスレはここのようですが。
0198デフォルトの名無しさん2005/12/01(木) 02:31:48
>>189
機能がかなり限定されてるからね
0199デフォルトの名無しさん2005/12/01(木) 02:32:34
じゃあ、その「MIPS上で動いているx86エミュレータ」上でx86用のJVMを動かすと
「MIPS上で動いているx86エミュレータ」上でx86アセンブラ(で作ったプログラム)を動かすよりも
速くなるわけですね?
0200デフォルトの名無しさん2005/12/01(木) 02:35:15
>>199
なんでわざわざエミュレータ上でJVMを動かすわけ?
0201デフォルトの名無しさん2005/12/01(木) 02:36:00
比較とはそういうもんだろう
0202デフォルトの名無しさん2005/12/01(木) 02:37:42
>>201
エミュレータ上でJVM動かすって二重にエミュレートしてね?
0203デフォルトの名無しさん2005/12/01(木) 02:41:46
だってここは「ネイティブじゃないアセンブラ」のスレですから
0204デフォルトの名無しさん2005/12/01(木) 02:43:21
んー、「ネイティブじゃないアセンブラ」と速度比較をするのは
「ネイティブじゃない(x86用)JVM」なのは当然、という事ですね。
0205デフォルトの名無しさん2005/12/01(木) 02:47:23
バイトコードはネイティブじゃないアセンブラではないってこと?
0206デフォルトの名無しさん2005/12/01(木) 02:50:03
で、「ネイティブ(なJVM)」と「ネイティブじゃない(機械語)」の比較を当然だと思っている人(>>195)は
「MIPSの機械語」で動いているプログラムと
「MIPS上で動くx86エミュレータ上で動くx86用のJVMで動くJavaプログラム」を比較して

「Javaはどんな言語よりも(スクリプト言語と比較してすら)遅すぎて使い物にならない」
という結論になっても当然だと思っているでしょう。

「ネイティブじゃないアセンブラ」と同じ立場の「ネイティブじゃないJVM」の速度を引き合いに出してるだけですけどね。
0207デフォルトの名無しさん2005/12/01(木) 02:52:16
意味わからん
0208デフォルトの名無しさん2005/12/01(木) 02:52:40
実物が存在するのに、
わざわざそのエミュレータを引き合いに出して「遅い」と言って何の意味があるのでしょうか。

Javaチップは何年も前から噂だけは流れましたが。
0209デフォルトの名無しさん2005/12/01(木) 02:53:00
みなさーん、言葉遊びは楽しいですかぁ?
0210デフォルトの名無しさん2005/12/01(木) 02:55:43
一応Jazelleってのがあるけど
0211デフォルトの名無しさん2005/12/01(木) 02:56:07
ネイティブじゃないアセンブラ
なんて言い出すバカが悪い
0212デフォルトの名無しさん2005/12/01(木) 03:05:19
ARMのJazelle技術はJavaチップと呼んでいいものなんだろうか?
0213デフォルトの名無しさん2005/12/01(木) 03:30:30
じゃばランタイム
0214デフォルトの名無しさん2005/12/01(木) 04:08:13
>>206
機械語とアセンブリの違いもわからずにわめいてるバカがいるな。
0215デフォルトの名無しさん2005/12/01(木) 04:10:20
もしかして、「ネイティブじゃないアセンブリ」の意味がわかんないやつって、アセンブリ言語が1つしかないと思ってたりするのか?
あと、アセンブラはアセンブリをバイトコードにアセンブルするプログラムのことね。
0216デフォルトの名無しさん2005/12/01(木) 04:17:27
みなさーん、言葉遊びは楽しいですかぁ?
0217デフォルトの名無しさん2005/12/01(木) 04:19:51
>>1が言ってる
> なんでもかんでもJavaでやろうとする人
はJavaで何をやろうとしているんですか?
0218デフォルトの名無しさん2005/12/01(木) 05:44:01
>>216
こんなネタスレに何を求めてるんだ?
0219デフォルトの名無しさん2005/12/01(木) 06:31:22
基地外がいるな
0220デフォルトの名無しさん2005/12/01(木) 08:40:10
むしろ基地害しかいない
0221デフォルトの名無しさん2005/12/01(木) 10:42:18
はやくjavaをネイティブで実行できるPCIカードでも出せばいいのにね。
今のままではx86とかのバイトコードを生成できてネイティブに動かせる言語の方が早い罠。

JVM環境って、x86のバイトコード作って、x86のエミュレータ上で動かしてる状態だからなあ。
0222デフォルトの名無しさん2005/12/01(木) 12:44:13
>>221
hotspotとかしらんのか
ネックになる場所を探して実行時にネイティブにされてるんだよ
0223デフォルトの名無しさん2005/12/01(木) 13:03:23
そこで Java Chip ですy(うわなにすasdfg
0224デフォルトの名無しさん2005/12/01(木) 13:20:18
みんなJazelleの存在はスルーするのな
採用実績もそこそこあるみたいなのに
0225デフォルトの名無しさん2005/12/01(木) 13:51:38
静的でネイティブな機械語を吐くJavaコンパイラは存在するし、インタプリタなC言語も存在する。
静的なネイティブなJavaコンパイラは一部の用途(組み込み向け)以外では、動的なオブジェクトの操作に難のあることもあり、Javaの他言語に対する優位性のほとんどが失われるため一般的にはなっていない
逆に動的なネイティブコンパイラはHotspot等で現在もっともJVMで利用されている技術

また、高級アセンブラとしての利用目的が主となるC言語では速度低下が目に見えているインタプリタはほとんど利用価値が無い
0226デフォルトの名無しさん2005/12/02(金) 04:00:01
>>222
なんで始めっから全部ネイティブにしないの?
アホなの?
0227デフォルトの名無しさん2005/12/02(金) 06:05:26
>>226
SEでも5000くらいあるクラスのプリコンパイルにどのくらい時間がかかると思ってんの?
0228デフォルトの名無しさん2005/12/02(金) 06:10:46
>>227
「コンパイル中です・・・」とかいうダイアログ表示させとけばいいじゃん。
トロトロ動き出すよりよっぽど衛生的だし、ユーザーはそれで納得するっしょ。
やっぱアホなの?
0229デフォルトの名無しさん2005/12/02(金) 06:21:10
ないない。
0230デフォルトの名無しさん2005/12/02(金) 06:22:07
Javaに関わった偉い人がすぐ動かなきゃヤダ、ってごねたんだよ
実際すぐ動かすなんてムリなのはわかってたけどね
結局中途半端な物になりましたとさ
0231デフォルトの名無しさん2005/12/02(金) 07:45:13
つうか、普通に使うのに何分も待ってられんだろ。
0232デフォルトの名無しさん2005/12/02(金) 08:59:50
実行時じゃなくて開発時にコンパイルしとけばってことじゃないの?
>>225に書いてある静的コンパイラを通したやつみたいに。
0233デフォルトの名無しさん2005/12/02(金) 11:30:26
>>232
いろいろ制約ができるにしては、メリットが少ないんじゃない?
0234デフォルトの名無しさん2005/12/02(金) 12:41:21
ネイティブ厨のやつらはなんでこんななんだ?
eclipseの起動が遅いのが随時コンパイルしているからとか思ってないか?
DOS+PnPに比べて、Windowsの起動が遅い理由は解ってるか?
0235デフォルトの名無しさん2005/12/02(金) 13:01:30
ネイティブコンパイラのほうが今速度遅いだろ
0236デフォルトの名無しさん2005/12/02(金) 13:10:32
>>235
それはネイティブコンパイラだから遅いんじゃなくて、最適化コンパイラだからだろ
コンパイル速度が遅いのは大域最適化を掛けるためにデータフローの解析を行ってるんだよ
あとC++のコンパイルが遅いのは言語仕様が建て増し追加の糞だから
0237デフォルトの名無しさん2005/12/02(金) 13:22:39
GCJとhotspotとを比べての話だろ?
ネイティブコンパイルするGCJはhotspotより3倍以上遅い
0238デフォルトの名無しさん2005/12/02(金) 14:12:09
いま簡単にdhrystoneしてみた。10000000ループに要する時間。
IBM classicVM(1.4.2) 2797ms
Sun hotspotVM(1.5) 4906ms
IBM J9VM(2.1 AOT) 6656ms
IBM J9VM(2.2 JIT) 18141ms
IBM J9VM(2.1 JIT) 16437ms
gcj(3.4.4) 31582ms

GNUのgcjが吐くネイティブコードは明らかに遅いが、IBM/J9のAOTコンパイラ
が吐くネイティブコードはSunのhotspotにちょい遅れる程度。
hotspotは1.5になってVMの起動が遅くなったからもうちょっとループ
増やせばIBM classicVMよりいい結果になりそう。
02392382005/12/02(金) 14:33:42
ちなみにコードが違うから直接比較は出来ないけど、Cだと1sec切った。
02402382005/12/02(金) 14:38:32
桁間違えた... orz
C(gcc3.3.4 -O2)で3750msec.
あと238でhotspotのVM起動時間がうんぬんいったけど、VM起動後から
計り始めてるからその影響はないや。
0241デフォルトの名無しさん2005/12/02(金) 15:03:53
>>240
gccしょぼいなICCはどうなんだろ?
0242デフォルトの名無しさん2005/12/02(金) 17:05:56
hotspotはserverVM?
それにhotspotのコンパイル閾値かえると多少変わるかも

ループ回数から行ってこれは誤差か

バックグラウンドコンパイルを切ってフォアグラウンドコンパイルにしたほうが速いかな

同じバイナリでもオプションしだいでいくらでも変わるのがJavaの面白いところ
マシン似合わせて最適化できるのは強みだね

たとえば、SSE使える環境なら自動的にSSE使うとかMMX使うとか
Cだと明示的にやるしかないのが自動的に組み込まれる
0243デフォルトの名無しさん2005/12/02(金) 17:32:48
流れ的に勘違いするやつが出そうだ。

>SSE使える環境なら自動的にSSE使うとかMMX使うとか

現状のHotspotVMはここまでやってくれない。
0244デフォルトの名無しさん2005/12/02(金) 17:40:56
Java2Dアクセラレーションで自動的に使ってくれるぞ
0245デフォルトの名無しさん2005/12/02(金) 17:43:05
DirectX使ったら自動的に使ってくれるようなもの?
0246デフォルトの名無しさん2005/12/02(金) 17:55:20
>>244 それは共有ライブラリがSSE対応になってるってだけで動的コンパイラは関係ない話だよね。
0247デフォルトの名無しさん2005/12/02(金) 18:18:17
JITで事前にコンパイルしてもSSEは使ってくれない?
0248デフォルトの名無しさん2005/12/02(金) 18:28:15
>>247
JITで事前コンパイルって意味がわからん
実行直前にコンパイルして実行するのがJITだぞ
それに加えて、プロファイル結果を適宜適用してキャッシングや非JIT実行を行うのがHotspot技術
事前コンパイルはAOT(Ahead Of Time)
0249デフォルトの名無しさん2005/12/02(金) 18:32:21
てか、SunがSun Fireを売るためにJavaを速くするのに熱心にならなかったという歴史は無視ですか?
早くする気があるならもっとAOTコンパイラを熱心に作ってただろ。
今はSunの影響力が弱くなって上記の商法の魔力も切れたからAOTコンパイラが出てきたんじゃないの?
0250デフォルトの名無しさん2005/12/02(金) 18:39:33
ダイナミックコンパイラだからMMXやSSEとか、キャッシュの量を考慮して最適化・・・とか
やろうとおもえばやれるんだよな

こういうのはベンダが最適化したルーチンだしてくれるといいんだけれども
実際のところリファレンス的なSunので十分な速度になっちまったからなぁ
0251デフォルトの名無しさん2005/12/02(金) 20:18:08
>10000000ループ

おまいらの試す”べんち”ってこんなのばっかだなw

GUI窓起動してデカ文字フォントのHelloWorldをラスタスクロールさせるぐらいやれよ
0252デフォルトの名無しさん2005/12/02(金) 20:35:03
あほか?Javaでディスプレイカードのベンチしてどうする
■ このスレッドは過去ログ倉庫に格納されています