現世代Javaの動向 1 ..
[2ch|▼Menu]
589:デフォルトの名無しさん
08/04/02 12:59:54
Java 6u10 beta age

590:デフォルトの名無しさん
08/04/11 22:50:12
今回のupdateはずいぶん変わったみたいだけど、実際体感はどうよ?

591:デフォルトの名無しさん
08/04/12 00:15:29
update5はほとんどかわってないぞ

592:デフォルトの名無しさん
08/04/12 00:31:17
URLリンク(java.sun.com)

593:デフォルトの名無しさん
08/04/12 00:55:38
updateNはまだでてないだろ?

594:デフォルトの名無しさん
08/04/18 12:40:18
Java SE 6 Update 10 Build 22 is now available
URLリンク(jdk6.dev.java.net)
URLリンク(download.java.net)

LCD表示周りの修正、あとエラーダイアログの情報が増える。
JavaKernel周りの修正、・・・・
Betaテストの結果が反映しつつあるというところでしょうか。

595:デフォルトの名無しさん
08/04/18 23:41:46
update6登場

あんま修正箇所が大きくない

JavaSE7やupdateNにリソースがいってるんかね

596:デフォルトの名無しさん
08/04/20 19:52:13
>595
・アプレット開始時にブラウザ巻き込んで死ぬことがなくなった
・Windows Live系の一部BHOがあるとアプレットが起動しなくなった

個人てきにはJavaオワタ

597:デフォルトの名無しさん
08/04/20 19:54:07
まともなソフトはまずアプレットじゃないからあんまり問題にはならないと思われ

598:デフォルトの名無しさん
08/04/20 20:21:41
アプレットでブラウザが死んだことが1,2度会ったから、よくあるバグなんだろう。

599:デフォルトの名無しさん
08/05/21 13:55:12
synchronizedは気にするほど遅いもんですか?StringBuilderとStringBufferで比べてどうでしょうか。

600:デフォルトの名無しさん
08/05/21 13:58:12
>>599 速度は実測が基本。

601:デフォルトの名無しさん
08/05/21 21:18:44
>>599
速度を気にする用途なら差は出る
StringBuilderが使える環境でStringBufferつかうのはタコだが

602:デフォルトの名無しさん
08/05/21 23:45:33
>>601
synchronizedはそういう問題じゃなんだが?

603:デフォルトの名無しさん
08/05/22 00:30:02
>>599
感覚的に答えるならStringBuffer,StringBuilderの速度の違いは結構あるよ。
synchronizedが求められる部分っていうのは大抵速度的にもキモになる部分が経験的に多かったし、
そこが見事にボトルネックになってしまったことも多い。

synchronizedを書かずにすむ設計でいけるならなるべく避けたほうがいいし、
そっちのほうが見通しもいい事が多いよ。

>>602
どういう問題なのか良くわからないから詳しく言ってくれ。
俺のエスパー能力で最大限意図を汲むと
「StringBuilderが使える1.5系なのにStringBuffer使ってる奴はタコwww俺さま流行最先端www」
って言ってる奴に対して
「いや、どちらのクラスを使うかはスレッドセーフを求められるかどうかとか、そういうことに左右されるんだが…」
って言いたかったのかな?

604:デフォルトの名無しさん
08/05/22 02:18:23
実際のところStringBufferの同期化が必要な場面ってのはVector以上に考えにくい

605:デフォルトの名無しさん
08/05/22 07:13:06
>>603
おまえ、エスパーだなw
「関数内で使うの許してもいいが、StringBuilderを戻り値に使う奴は大ダコ」て意味だけどw

606:デフォルトの名無しさん
08/05/22 07:16:30
>>604
だからさ、どうれぐらい差があるか知りたいでしょ。
おれはそれでもStringBuffer使うけどね。どうでもいい差でバグ探しする時間のほうがコスト高なんじゃないの?
たぶんVectorのそれと似たような事だと思うけど、StringBufferはプリミティブでしょwだれか実測お願い。

607:デフォルトの名無しさん
08/05/22 11:17:09
public class Main {
public static void main(String[] args) {
System.out.format("java.runtime.version=%s%n", System.getProperty("java.runtime.version"));
int count = 1000, length = 1000;
for (int i = 0; i < 5; i++) {
// System.gc();
long t = System.nanoTime();
testStringBuilder(count, length);
System.out.format("StringBuilder[%d] %,d%n", i + 1, System.nanoTime() - t);
t = System.nanoTime();
testStringBuffer(count, length);
System.out.format("StringBuffer[%d] %,d%n", i + 1, System.nanoTime() - t);
}
}
public static void testStringBuffer(int count, int length) {
Random random = new Random();
for (int round = 0; round < count; round++) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++)
sb.append((char) random.nextInt());
}
}
public static void testStringBuilder(int count, int length) {
Random random = new Random();
for (int round = 0; round < count; round++) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++)
sb.append((char) random.nextInt());
}
}
}


608:デフォルトの名無しさん
08/05/22 11:17:40
java.runtime.version=1.6.0_06-b02
StringBuilder[1] 46,349,536
StringBuffer[1] 79,622,829
StringBuilder[2] 40,456,329
StringBuffer[2] 74,662,283
StringBuilder[3] 36,223,249
StringBuffer[3] 72,998,594
StringBuilder[4] 36,400,646
StringBuffer[4] 73,236,472
StringBuilder[5] 36,957,769
StringBuffer[5] 72,561,457

だいたい2倍の違いらしい。

609:デフォルトの名無しさん
08/05/22 11:50:45
>>608
5回では少ないよ
JIT効くまで回してほすぃ

java.runtime.version=1.6.0_05-b13
StringBuilder[1] 158,443,766
StringBuffer[1] 207,692,900
StringBuilder[2] 103,762,950
StringBuffer[2] 234,251,232
StringBuilder[3] 96,471,555
StringBuffer[3] 203,392,112
(略)
StringBuilder[18] 96,870,134
StringBuffer[18] 96,189,123
StringBuilder[19] 106,288,413
StringBuffer[19] 102,384,099
StringBuilder[20] 96,629,241
StringBuffer[20] 95,805,536

610:デフォルトの名無しさん
08/05/22 12:04:12
2倍とか言って、測り方を知らないようだな。笑えるww

611:デフォルトの名無しさん
08/05/22 12:05:41
C:\Users\------\Documents>java -server -XX:+DoEscapeAnalysis Main
java.runtime.version=1.7.0-ea-b26
StringBuilder[1] 66,886,993
StringBuffer[1] 121,272,397
StringBuilder[2] 46,811,257
StringBuffer[2] 113,352,675
StringBuilder[3] 41,445,770
StringBuffer[3] 43,428,984
StringBuilder[4] 41,599,701
StringBuffer[4] 41,859,789
StringBuilder[5] 42,782,253
StringBuffer[5] 42,855,167

jdk7 + エスケープ解析付きだと、3回目あたりから殆ど差がなくなるみたい。

612:デフォルトの名無しさん
08/05/22 12:57:54
エスケープ解析とかのレベルの差しかないのかよ。
3秒に2倍で6秒は大問題だけど、30ナノ秒の2倍で60ナノ秒になんか価値はあるのか?
そもそもchar[]じゃダメなのか?測定ってのは、そういう問題でやるんだよな。

613:デフォルトの名無しさん
08/05/22 13:01:28
>>605
戻り値にStringBuilderは通常問題ないよ
同期化の意味間違えてないか?

>>606
常にJDK1時代のコレクション使う人?

614:デフォルトの名無しさん
08/05/22 13:13:53
WindowsプラットフォームでJavaのランタイムライブラリーは、VBランタイムの様に、
もう問題ないぐらいに普及していて、クライアントのバージョンももう1.5を前提としてよいのでしょうか。

アプレットも考えてるんですが、アプリの方でも普及割合はどうなってるのでしょうか?(そういう調査してるサイトとかあるんでしょうか)

615:デフォルトの名無しさん
08/05/22 13:22:58
>>614
アプリならPrivateJRE使って6前提でいいと思うが
6は大幅な高速化してるからね

616:デフォルトの名無しさん
08/05/22 15:57:53
実際はjavaなんて「名前ぐらいで聞いた事あるな〜」ぐらいで知らない人が多いし、
クライアント前提なら今でもappletとか1.1ぐらいしかないよ。騒いでるのは開発者とかだけだ。
運が良くて1.4とかかもしれないけど、1.2やswingだと思っていたほうがいい。

617:デフォルトの名無しさん
08/05/22 15:59:04
>1.2やswingだと思っていたほうがいい。
日本語でおけ

618:デフォルトの名無しさん
08/05/22 16:16:32
日本語でおけ ってどういう意味?おけ?

619:デフォルトの名無しさん
08/05/22 16:29:19
putJapaneseのことだろ。

620:デフォルトの名無しさん
08/05/22 19:30:46
MSがXPとVistaでがっちりガードしたから
いくらJavaが頑張ってDesktopをうかがってももう無理だろ。
それよりもJavaの市場は組み込みとか(携帯とか新規の方)じゃないのか?

621:デフォルトの名無しさん
08/05/22 19:55:13
>>616のいいたいことがわからん

622:デフォルトの名無しさん
08/05/22 20:30:31
>>621
おまえは日本人じゃないだろw

623:デフォルトの名無しさん
08/05/22 21:17:10
まあJavaとJavascriptがごっちゃになってる人は意外と多い

>>614
問題ないって。というかインストールしてもらえばいいよ必要なら。
Java入れたくねーって神経質な人もいるけどかなり少数派。
一般人は、VBランタイムもJREもダウンロード&クリックでガンガン入れてくれるもの。
JREはバンドルできるから、一緒に入れてしまうアプリもあるよね。

624:デフォルトの名無しさん
08/05/22 21:41:15
Javaで作ったお試しとか、ちょっとしたツールとかだとどうかな。
よくあるでしょ、VBのファイル名一括変換とかそういうの(別にCで作れるけど)。
海外だとゲームも多いけど、日本(のデスクとッぽうアプリ)はしょぼいでしょ。
iriaだったかそういうのに感動した口でしてw

625:デフォルトの名無しさん
08/05/22 21:52:05
>>622
あの意味がわかるなんてエスパーだな

ああ芝君だから本人か

626:デフォルトの名無しさん
08/05/22 22:55:25
芝君ってなに?
ん?エスパー?

627:デフォルトの名無しさん
08/05/23 01:12:27
>>612
なんというレベルの低いレスw

628:デフォルトの名無しさん
08/05/23 08:58:52
せっかく速度テストするなら、有用な結果を作れよ。せっかくやっても、この有用であったかなかったかで評価されるんじゃね?

629:デフォルトの名無しさん
08/05/23 09:03:37
そもそもマイクロベンチに有用性を求めるなよ。
最適化具合が変われば結果なんかコロコロ変わるんだから。

630:デフォルトの名無しさん
08/05/23 09:12:04
そりゃマイクロベンチにかぎらんがな

631:デフォルトの名無しさん
08/05/23 09:15:01
実プログラムでホットスポットがわかった場合
その部分の速度上げるような工夫するのは意味があるけど、

マイクロベンチではそんな事やっても意味ないし。

632:デフォルトの名無しさん
08/05/23 09:53:28
じゃStringBuilderイラネ―じゃん。Javaにしては珍しく不用なものを、それもよりによってjava.langに詰め込んだものだw

633:デフォルトの名無しさん
08/05/23 10:03:14
要らないのは>>632のアタマだと思うが……

634:デフォルトの名無しさん
08/05/23 11:22:58
エスケープ解析博士はまだ生きてんのか・・

635:デフォルトの名無しさん
08/05/23 17:16:34
BigDecimalとかnewしまくってもパフォーマンスに影響ないんでしょうか。
forでnew BigDecimalを1000回まわしたりとか当たり前の世界なんですが・・

636:デフォルトの名無しさん
08/05/23 17:22:40
>>635
そりゃ1回もnewしないよりはパフォーマンスは悪くなるが、
newしなけりゃ機能しないんだったらnewした方が圧倒的にパフォーマンスは良い。
パフォーマンスや最適化を議論したいのならまず実測してからにしろ。

637:デフォルトの名無しさん
08/05/23 17:36:51
まずは、そこがパフォーマンスに影響するかどうかを確かめてからだな。
2:8の法則。

パフォーマンスに影響が出る部分でなければチューニングしてもさして得しない。
1000回回すのがいやなら回さないスマートなアルゴリズムを考える。

638:デフォルトの名無しさん
08/05/23 18:44:10
あのー・・・テイラー展開なんですけど・・

639:デフォルトの名無しさん
08/05/23 21:19:41
javaでそういう高度なこと理解できる人少ないからww

640:デフォルトの名無しさん
08/05/23 22:29:27
テイラー展開だったら、どこまで扱うか有効数字管理がちゃんとしてるから
ループ回数は決まってるでしょ。
ループ回数云々じゃないですね。アルゴリズムが決まってるんだったら。

641:デフォルトの名無しさん
08/05/23 22:46:45
1000回ってぶっちゃけループの回数としては全然大したことが無いように
思えるけど

本当に1000回なの?
1000回のnewなんてゴミみたいなもんだよ

642:デフォルトの名無しさん
08/05/23 23:54:06
sin(x)を一回起動するだけでループ1000回とか当たり前なんですけど?
偉そうなこといって実装した事ないでしょw

643:デフォルトの名無しさん
08/05/24 00:33:01
いや、だから1000回とかでも n 倍のオーダーなら別にたいした事無いって言ってるんでしょ?
最近は処理速度の問題は大抵 n 乗とかのオーダーが存在するかしないかってのが多いんじゃない?


644:デフォルトの名無しさん
08/05/24 00:47:38
10^3ってことじゃないのか?それよりも、newを1ミリ秒の間に1000回やっても(出来たらだけど)、パフォーマンスに影響ないってことを君はいってるんじゃないの?

645:デフォルトの名無しさん
08/05/24 00:50:26
たぶん空想で言ってるんでしょ。あいからわずだけど。
当たり前だけどdoubleと比べると体感では少し気になる。
こういうのは外部プログラムを呼び出して楽できないし

646:デフォルトの名無しさん
08/05/24 00:56:31
遅い速いが重要になるのはアプリの対象領域にもよるだろう。
科学技術計算なんかは許されないだろうし、3Dゲームなんかは結構適当でもいい気がする。
そういう対象領域が特定されていないうちから「BigDecimal は遅いから使えない」なんて言っても無駄だぜ。

double より BigDecimal が遅いのは当然なんだし、
その遅さが許容できるかどうかは状況によるんだし。

647:デフォルトの名無しさん
08/05/24 10:43:11
無理するなってw
空想でものもいわなくて言いから

648:デフォルトの名無しさん
08/05/24 11:30:32
>>646
>科学技術計算なんかは許されないだろうし、3Dゲームなんかは結構適当でもいい気がする

関係ないけど、これ、むしろ逆だと思うが

649:デフォルトの名無しさん
08/05/24 11:32:03
はあ

650:デフォルトの名無しさん
08/05/24 12:58:33
>>648
どこの分野にもいるが、使った事もない奴が妄想してるだけっしょ

651:638ではないよ
08/05/24 13:07:27
誤解してる人が居ると思うのでテイラー展開の計算についてちょっと書いとく。
テイラー展開の計算は、nを順に大きくした結果を足していくシグマ計算でもって
もとの式を書き換える手法。

シグマ計算のnが大きくなるに連れて、その足し算の数は小さくなっていく。
つまりどんどん本当の結果に漸近するような感じ。
この形に展開することでnを現実的な数字、例えば1000まで計算することで
近似値を得る事ができるというもの。

で、その式はWikipediaでも見てもらうとして、ちょっとコンピュータ的に書くと
Sigma( f(n)(a) * (x-a)^n / n! )
で、これを見ると毎回の計算でベキ乗オーダの計算が必要に見えるけど
実は、n-1の時に (x-a)^(n-1) や、(n-1)! は計算できているし f(n)(a)も
頑張ればなんとかできる場合がある。つまりそのときはテイラー展開の計算量はo(n)となる
この最適化をするかしないかで議論が分かれてるように思ったのでちょっと説明してみた。

で、まあベキ乗とか計算するとき大変なのが有効数字の管理。
これが計算精度に関わってくるからね。コンピュータで計算する以上それは仕方がない。
なので計算プログラムの設計者は有効数字を見積もらなくてはいけない。
それは翻って、ループの数を増やして意味のある数字を出す為には有効数字を
ちゃんと管理しておかなくてはいけないということ。
なので1000回という数字がどういう意味で提示されたのかはっきりしないと話は発散したままです。
>>638
話の収拾宜しく。

ちなみに、Objectのnewは大してコストかからんですよ。
むしろ、BigDecimalは計算にコストがかかります。そこも話が食い違ってるのがあったっぽいね。

652:デフォルトの名無しさん
08/05/24 13:10:18
シグマ計算てどこの分野の用語だよ?素人は黙っとれw

653:デフォルトの名無しさん
08/05/24 13:22:47
元の質問者の口ぶりからすると、計算それ自体が目的で、しかも
高々1000回のループやnewで済む計算処理を、さも大したことのように
想像で語ってるだけのようだから、
そんなことはゴミみたいなもんだから気にスンナでFAだと思うが

それをリアルタイム制御なり60FPSなりの要求時間の枠に押し込めなきゃいかん、
とかだと全然話は違うがな

654:デフォルトの名無しさん
08/05/24 13:23:46
だから、BigDecimalでもうatanとかsinとか実装してるわけ。
で、double(当然native sin呼び出しだろうけど)と比べるともたついて、sin(x)/xの積分とかに影響出るわけよ。
sin値出すのに数百回、積分もいれて1000回以上のループは当たり前で。

例えば100ミリ秒に1000回以上のnewしまくりで遅いんだろうし(たぶん)、
これなら外部ライブラリをjniで呼び出したほうが速いんじゃねってこと。
jniはstackframe使えるし、newしまくりはないしな。

初めから有効精度固定なら固定少数とか外部ライブラリとか別の実装にするよ。


655:デフォルトの名無しさん
08/05/24 13:24:31
それと、計算にコストかかるってのは分からないでもないが嘘だな。
学生なんだし、適当な事グダグダ書いてないで、ちゃんと勉強したほうがいいよ。


656:デフォルトの名無しさん
08/05/24 13:26:04
javaって役に立ちますか?パソコンのプログラミングを始めたいのでアドバイス

下さい

657:デフォルトの名無しさん
08/05/24 13:30:52
>>654
お前は誰だ・・・

どっかで見かけたJavaはGCがフレーム間の任意のタイミングで出せないから糞だって言ってた奴か?
お前の用途にBigDecimalが向かないのはよく分かってるから問題を混ぜないでくれ・・・・

658:デフォルトの名無しさん
08/05/24 14:43:49
リアルタイムとか60fpsの環境でBigDecimalを使うなんて、おまえは全く想像力豊かな奴だなw
おまえみたいな奴が知ったかしてもらっても困るし、相手にならないよ。

659:デフォルトの名無しさん
08/05/24 14:53:31
3Dのマトリックスあたりだと実装次第でオブジェクトの再利用できるし、newして再計算で座標出してもそんなに影響はないんだろう。

しかし、BigDecimalで任意桁の初等関数とさらに積分となると、1秒間の間にnew byte[1024*64]とかが当たり前の世界だろうな。
stack allocateがない今のjava jvmでは試験目的ならあるけど、実用的じゃないだろう。
それこそjniとかでcを呼んだ方がいい。
gplライセンスのパッケージを使うわけにもいかないしw

自分で再利用できる(ムータブルの)BigDecimal実装がいいだろう。
多倍長のクラス、誰か作ってよwだけどjavaは変なところで面倒だな。

660:デフォルトの名無しさん
08/05/24 14:56:45
まあ、ByteBuffer使って解決かと思うけどね。

661:デフォルトの名無しさん
08/05/24 15:12:53
で、ここには何人いるんだ?

662:デフォルトの名無しさん
08/05/24 16:36:39
誰もいません
全て幻想です

663:デフォルトの名無しさん
08/05/24 16:42:37
>>658
1048576*745472くらいの解像度の動画でも作ろうとしてるんじゃないか?w


664:デフォルトの名無しさん
08/05/24 17:08:40
Javaでリアルタイムやるのはまだ夢でしょ。それともjsr 1の話なのか。
>>653は幻想に取り付かれてんだろw


665:デフォルトの名無しさん
08/05/25 20:42:56
>ちなみに、Objectのnewは大してコストかからんですよ。 
むしろ、BigDecimalは計算にコストがかかります。そこも話が食い違ってるのがあったっぽいね。 

これの言いたいことがよく分からないんですけど、少し解説してもらえまんせか?

話題としてはjvmとか内部の話で、java言語上の話ではないですよね。java上ならnewはコストがかからないとかで、別に気にしませんけど。
jvmの実装レベルの話にまで言及するなら、オブジェクトプールの技もあるんですけど、結局mallocに行き着くわけでしょ?
jvmなど内部の話題とおもうんですけど、一体どの基準で大してコストがかからないって言うんですかね。

それと、BigDecimalの計算にコストがかかるときはどういうときなんですか?

666:デフォルトの名無しさん
08/05/25 21:24:54
core2duo買ってようやく、javacが使えるようになったわ。
ちょこっとづつ修正しながらやるんで、コンパイルは一瞬で頼むってタイプなんで。

667:デフォルトの名無しさん
08/05/25 23:09:50
Core2Duoじゃなくてもコンパイルは一瞬だと思うんだが

668:デフォルトの名無しさん
08/05/25 23:38:58
>>665
Javaのnewはmallocみたいにヒープを辿ってサイズの合うフリーブロックを探し回ったりせず
エデンの先頭から確保してくるだけなので軽い
代わりにGCに負担がかかるけど
詳しくは世代別GCでぐぐる

669:デフォルトの名無しさん
08/05/25 23:57:06
>>665
> 話題としてはjvmとか内部の話で、java言語上の話ではないですよね。java上ならnewはコストがかからないとかで、別に気にしませんけど。
意味がわからん。メモリ管理はJVMの管轄で「(最近の)Javaでnewに(ほとんど)コストがかからない」というのは、JVMのnew/newarray/anewarray/multianewarray命令の実行にほとんどコストがかからないのと同義だぞ。

670:669
08/05/26 00:03:07
一部訂正。
JVMのnew〜→(最近の)JVMのnew〜


671:デフォルトの名無しさん
08/05/26 00:20:03
GCに負担かかるなら、生成は負担がなくても解放に負担がかかるわけで(検索とか、移動によるプールの維持とか)、
実質次のnewが実行できるかになるわけで、newに負担かかるのと同義じゃないんですか?たしか1秒間にいくらでも(例えば1000回以上のnew)ですよね。

それと、javaのnewとjvmのnewはあなたの知識上では何か違いがあるですか?知ったかぶってるようですけどw

672:デフォルトの名無しさん
08/05/26 00:23:43
まぁBigDecimalみたいなのは世代別GCと相性はいいな

673:デフォルトの名無しさん
08/05/26 00:24:28
java言語上というのは、jvmとか内部を気にしてないで普通にコーディングしてるときの意味です。
1秒間にfor内部でnew byte[1000*64]のコードは(それもbyte[]は仕様上再利用できない)、
さすがに気にするでしょ。考える基準はjvm上ってことになります。
あなたが学校で教えてもらえないからって、こういう普通の事の意味を分かりませんかね?

>命令の実行にほとんどコストがかからないのと同義だぞ。 

ここでいうコストは具体的に何を指してるんですか?

674:デフォルトの名無しさん
08/05/26 00:26:28
>命令の実行にほとんどコストがかからないのと同義だぞ。 

それとも、もしかしてあなたは詳しいんでしょうか?
どれぐらいだと、コストがかかるんですか。知ったかぶりの無責任発言じゃないなら、答えられるでしょう。

675:デフォルトの名無しさん
08/05/26 00:30:58
いまだにコストの部分に突っ込んでるやついるのかよ

まぁ全部age厨の芝君のようだが

676:デフォルトの名無しさん
08/05/26 01:16:34
何か一人、自分の知らない知識言われたら知ったかぶりというレッテルを貼りたがる奴が粘着してるのな。

どーでもいいや。もっとやれーwww

677:デフォルトの名無しさん
08/05/26 01:28:25
age房とか言うスレの住人が、答えられるわけないじゃん。期待しちゃだめでしょ。
このスレは、マ版と同様に知ったかが集まる愚痴専用だしww

678:デフォルトの名無しさん
08/05/26 01:33:31
所詮はsage進行で壺の奥底に溜まってる不潔なやつらだからねww
GCとかいつも日の当たらないことばかりやっていて、お天道様を一生拝めないわけよw

679:デフォルトの名無しさん
08/05/26 01:40:45
研究者にだって、光あれ!

680:デフォルトの名無しさん
08/05/26 05:55:05
光あれって唱えたら禿げたんだろ。

681:デフォルトの名無しさん
08/05/26 11:09:32
>>635
そのパフォーマンスを改善するために

BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.TEN
というものが用意されているわけだが。

Factory MethodパターンやProxyパターンなどを使って一度newした値を
再利用することでパフォーマンスを改善することができるぞ。ZEROもONEもそれと同じ仕組みだ。
Number#valueOf()はみんなそういう仕組み。

ただし小数を引数にしてBigDecimal#valueOf(double)で型を生成するのは
10進2進変換誤差が生じるのでやはり
new BigDecimal(String, MathContext)をお勧めするが。

どうしてもパフォーマンスが気になるなら
よく使うと想定される数字は

final BigDecimal PI = 3.14 = new BigDecimal("3.14");
のようにあらかじめつくっておくといい。

Factory Methodを使うのもお勧め

682:デフォルトの名無しさん
08/05/26 11:13:51
>>641 >>642
まあ、数値解析やっていれば
制度を落とさずに計算をもっと高速化する術はあるわけだが。
それもオーダーを減らすあの公式。

>>645
MathContextでどれくらい精度を高めているかにもよるんだよな。
EPS値が異常に小さい、「スケール」が異常にでかいと、やはり
配列のサイズが大きくなるのでパフォーマンスは落ちる。
128ビット程度だったらそこそこだろうか。それを超える1024ビットとかだと
パフォーマンスは確実に落ちるw


683:デフォルトの名無しさん
08/05/26 11:19:25
>>646
> 遅い速いが重要になるのはアプリの対象領域にもよるだろう。
> 科学技術計算なんかは許されないだろうし、3Dゲームなんかは結構適当でもいい気がする。
> そういう対象領域が特定されていないうちから「BigDecimal は遅いから使えない」なんて言っても無駄だぜ。
>
> double より BigDecimal が遅いのは当然なんだし、
> その遅さが許容できるかどうかは状況によるんだし。

10進2進変換誤差をだすわけにはいかない金融系ではBigDecimalは必須だからな。
BigDecimalは内部でint型配列を使って四則演算しているからdoubleより遅くなるのは普通。
配列型だからdoubleより速くなることが? あるのかねー。


684:デフォルトの名無しさん
08/05/26 11:29:58
>>654
> だから、BigDecimalでもうatanとかsinとか実装してるわけ。
> で、double(当然native sin呼び出しだろうけど)と比べるともたついて、sin(x)/xの積分とかに影響出るわけよ。
> sin値出すのに数百回、積分もいれて1000回以上のループは当たり前で。
>
> 例えば100ミリ秒に1000回以上のnewしまくりで遅いんだろうし(たぶん)、
> これなら外部ライブラリをjniで呼び出したほうが速いんじゃねってこと。
> jniはstackframe使えるし、newしまくりはないしな。
>
> 初めから有効精度固定なら固定少数とか外部ライブラリとか別の実装にするよ。


俺もBigDecimalに対応した三角関数の数値積分プログラムを作ったことがあるよ。
確かに計算に時間がかかるよ。
当時はMathContextがなかったから、BigDecimal#divide(BigDecimal x, int scale, int roundingMode)
の二つ目以降の引数やEPSの扱い、>>654の言うテイラー展開で項の数1000回というループを本当のところ何回にすべきかの扱いなどで
てこずったよ。そのためにいちいちクラスを作ったものだよ。

>>651
ちなみに、テイラー級数展開は、奥村晴彦の『Javaによるアルゴリズム辞典』に載っているが、
連分数展開にするとパフォーマンスが上がるぞ。恐らく>>654もそれらしき本か数値解析本を読んでいたんだろう。
連分数展開はオーダーが一気に改善されるし少ないオーダーで高精度を得られる。




685:デフォルトの名無しさん
08/05/26 11:34:01
>>671
> GCに負担かかるなら、生成は負担がなくても解放に負担がかかるわけで(検索とか、移動によるプールの維持とか)、
> 実質次のnewが実行できるかになるわけで、newに負担かかるのと同義じゃないんですか?たしか1秒間にいくらでも(例えば1000回以上のnew)ですよね。

だからFactory Methodを使おう。場合によっては1000回もnewする必要性も下がってくるから。
for文の外でできることはなるべく外でやろう。

686:デフォルトの名無しさん
08/05/26 11:46:03
Javaってスタック内にオブジェクトのための領域を確保できないの?

687:デフォルトの名無しさん
08/05/26 12:02:24
>>686
初心者歓迎スレ行って聞けよ。

688:デフォルトの名無しさん
08/05/26 12:14:34
そんなことして一体どうする気だ。

オブジェクトをあるクラスのstatic変数として使っているなら
スタックからヒープへのポインタとして表現はできるが。


689:デフォルトの名無しさん
08/05/26 12:15:40
>>677-680は自虐レスか?
こんなのが研究者を名乗るのか? 恥だぞ。
研究者なんかにならずとっとと就職してくれ。邪魔だから。


690:669
08/05/26 13:08:37
えーっと、誰か>>673が何を言いたいのか解説してくれ。
JVMのメモリ管理とJavaのメモリ管理を別のものとして扱ってるように見えたので、同じものとみなしておkという意味で>>669を書いたんだが。

691:デフォルトの名無しさん
08/05/26 13:43:40
>>681
君は調子に乗って発言してみないで端っこでみていてくれないか。
valueOfとかたぶんコンストプールのこといいたいんだろうけど、
全くトンチンカンなこといってるの気づいてないでしょ?

たぶんエスケープ解析にこだわってる御仁だろうけど、こだわるなら自分の専門分野の話だけにしてよ。

692:デフォルトの名無しさん
08/05/26 13:48:55
おれはそんなものに拘ってない

693:デフォルトの名無しさん
08/05/26 14:06:40
>>685
その場合によっては、という曖昧な答え方をせず、その条件を提示してくれないか?
すくなくとも、Stringのように「objを再利用できるかも」どころの話じゃないよ。
もしそんなことしたらout of memory errorじゃないかな。

694:デフォルトの名無しさん
08/05/26 14:10:49
>>689
恥じかいてるのはおまえなんじゃないの?知らない事でも偉そうに意見してるし、それも的外れなのを気がついてないしww

695:デフォルトの名無しさん
08/05/26 14:13:02
この仕切り屋は、>>688のレス見てもう、どうもアレだな。おまえは神か何かなのか?
おまえは、不満が多いの、おごり高いようだがww

696:デフォルトの名無しさん
08/05/26 14:15:25
>>682
ああ、少しは通じる人いたわ。
自作ライブラリーだし(静的リンクとでも言うのか、組み込みというのか)、
高度なアルゴとか公式はいらんのよ。普通にテイラー展開(多項式)でごり押しでいいの。
必要なら、金出しても最適化されてる商用ライブラリ使うし、ライセンスをgplにする気あるなら、確か…もう誰か作ってたでしょ。C++版もあるあの有名なの。

アルゴ辞典は熟読でしょ。よくまとまってるし、奥村さんのコーディングは癖も少ない。
扱う分野も広いし、記事の量からみても入門に最適でしょ。

連分数は最強だけど、精度を固定できれば実用だろう。
ま、結局アルゴは一番単純なテイラー展開になるわけ

697:デフォルトの名無しさん
08/05/26 15:09:04
どこかの研究室から書いてんじゃね?現状・現場の事や社会の仕組みも知らないで、のほほんとJVM様様って拝んでる奴が一人いるしw
とりあえず、そいつは、このすれを、仕切るのは辞めてくれ。何様なのか知らんがな、知らないことに首突っ込んで、適当なことを言うもんじゃないよな。

698:デフォルトの名無しさん
08/05/26 15:12:00
ID付いて欲しいよホント・・・・

699:デフォルトの名無しさん
08/05/26 15:19:38
native real sin(real)とjniでccライブラリ呼ぶのがいいかと思う。今の結論では。
携帯電話とかで速度求めるわけでもないし、どうせ安いところ使うし、インテルかアップルでしょ。

>>698
知らない分野に首突っ込まない方がいいよ。傲慢で偉そうにしてると、知らないうちに恥かくだけでしょ。

700:デフォルトの名無しさん
08/05/26 15:22:18
>>698
IDつけて何を解決したいの?というか、君の意見が丸見えになるし、君が良く使ういつもの適当な意見を出せなくなっちゃうじゃんw

701:デフォルトの名無しさん
08/05/26 15:26:20
テイラー展開とは「シグマ計算でなんとか」って言う坊やだろ。
それもvalueOfでキャッシュがどうとうとか、javaとjvmを全然違うんだ!!とか
・・・・・・まるでとんちんかん・・・・・・苦笑するしかないな

おごりだけは人一倍強いから、仕切るだけしか能がないんだなw

702:デフォルトの名無しさん
08/05/26 23:17:14
>>697
研究関係者に対する偏見はやめようや。

社会人が大学院に入学して再び大学に戻ってくる
ことは普通にあるんだぜ。それで研究
やってる奴が現場のことや社会の仕組みも知らないだと
言い張るお前はとんだアホだ。

703:デフォルトの名無しさん
08/05/26 23:19:53
>>694
昨日からage続けている奴はすべて
お前なんじゃないかと思っていたが、
別人を装って自分の間違いを認めないでいるのか?
もうお前は研究者なんてやらんほうがいい。
就職しろ


704:デフォルトの名無しさん
08/05/26 23:22:22
>>693
テイラー展開の項数がいくらか、
EPSがいくつか、BigDecimalのスケールはいくらか、
がループを回す回数と関係があることはわかってるだろ?

実際にどういうアルゴリズムを使ってるか
わからないことには、どこでどうループを回す回数が関与してくるのかわからない。

705:デフォルトの名無しさん
08/05/26 23:23:23
>>693
1000回newする=即座にout of memory errorに
つながるとは限らない。

一度使用した変数に何度も上書きで代入すればメモリが溢れることはない

706:デフォルトの名無しさん
08/05/26 23:25:21
>>691
そもそも>>635がアルゴリズムのどの箇所でループを1000回回しているのか
はっきりしないことには。

ループの回転数の合計が1000回なのか
一部のforループのみが1000回回っているのかはっきりしない。

707:デフォルトの名無しさん
08/05/26 23:41:48
>>702-706
連続の投稿、ご苦労なこったw
んー。だけど、どうも分かってないようだねww

ageたりすると発狂するし、テイラー級数の項数とかアルゴとかそういう、そもそも技術的な話以前に、話にならない。
人一倍妄想で話をするのが好きなんだねwwナルシストの一歩手前って処か(わらい


708:デフォルトの名無しさん
08/05/26 23:42:57
>一度使用した変数に何度も上書きで代入すればメモリが溢れることはない 

このあたりが意味不明なんだけど。BigDecimalはイミュータブルじゃないの?

709:デフォルトの名無しさん
08/05/26 23:43:55
ループの回転数」っていうのはどの大学の研究室だっけ?

710:デフォルトの名無しさん
08/05/26 23:53:32
>>704
それに必要な情報はもう書いてあるんだけど、おまえの知能じゃ読み取れないのか?いつまでも傲慢なやつだなw

任意精度・可変長精度だからscaleは不明、引数によっていつも違ってくるから、引数の情報(精度)を当てに出来ない。
よって、ループ回数も最低でも30回以上(double桁程度)、初等関数値を出すのに、sqrtも混ぜると普通は100回1000回は当然期待の範囲内。
関係というか、オーダーも指数関数的。

アルゴはテイラー・多項式によるリニアだけど、その組み合わせ、sqrt, sin, integral, fftなど。
よってループ1000回は概算でも、当たり前の世界。
これに複素数のマトリックス4x4のインバースとかもはいるし、コード上の計算は1秒間にループ1000回などあたりまえだし、それ以上。

グダグダ核よりも、おまえみたいなオタクには、1秒間にループ1000回ぐらいって言う方が分かりやすいだろww
これぐらいの情報が書いてあったんだけど、そういうの想定してよw


711:デフォルトの名無しさん
08/05/26 23:56:45
2Dグラフにプロットとかなら、floatでも十分だし、地球シミュレーターとか、宇宙戦艦作るわけでもないんだけど、
100万1000万桁が必要な分野があるんですよww

712:デフォルトの名無しさん
08/05/26 23:57:11
ところで、それ現世代Javaと関係あんの?

713:デフォルトの名無しさん
08/05/27 00:08:53
パフォーマンスの話題なんだけど気がつかない?十分関係あるじゃん。

714:デフォルトの名無しさん
08/05/27 00:10:15
パフォーマンスに関しては>>699で結論出したんじゃねーの?

715:デフォルトの名無しさん
08/05/27 00:11:40
自分の知らない話題だからナルシストはこういうのは極力避けたいんだろう。
本人は親切なつもりだろうが、こういうのは明らかに傲慢といわれるだろう。こいつは何様のつもりなんだか…
とりあえず、これについて答えたんだから、ちゃんと答えてくれるよな?

>テイラー展開の項数がいくらか、 
EPSがいくつか、BigDecimalのスケールはいくらか、 
がループを回す回数と関係があることはわかってるだろ? 

716:デフォルトの名無しさん
08/05/27 00:14:09
こいつはが答えるのは無理だ。
上からの目線で馬鹿にして、いつものようにうさ晴らししてるだけだから
無名大学でサルどもにjavaでも教えてストレス溜まってるんじゃね?
こいつにはみんなサルに見えるだろうなw

717:デフォルトの名無しさん
08/05/27 00:16:22
で、それJavaでやる必要あるの?

718:デフォルトの名無しさん
08/05/27 00:18:37
確かにいつも偉そうな事言ったり(専門用語使ったり)、
聞き返したり(>>704にたいに当然のことを)してるけど、
こいつはいつもツボに入ったような適切な返事がないな。

それでいて自分勝手で、仕切りたがるし、もうウザイだけだろ。
たぶん職場でも嫌われてるからこんなスレを仕切ったりしてるんんだろう。

719:デフォルトの名無しさん
08/05/27 00:24:31
(こういう人の特徴ウザイ・キモイからして、たぶん創価大学の研究室からですよ)

720:デフォルトの名無しさん
08/05/27 00:45:26
>>717
Javaでやる必要があるか・ないかないかは、おまえが判断することじゃないな。
そういうことしかいえないなら、おまえはJava使うのやめた方がいいよ。

721:デフォルトの名無しさん
08/05/27 00:47:24
変な仕切り屋がいると、そいつに合わせなくちゃいけなくなるし、誰も寄り付かなくなるんだよね。

722:デフォルトの名無しさん
08/05/27 00:48:25
俺は判断してるわけじゃないよ。質問してるだけで。

723:デフォルトの名無しさん
08/05/27 00:50:40
でもそういう仕切り屋に限って、高慢とか、自尊心だけはいっちょまえに高いけど、技術的には全く幼稚ってのが多くね?それもそいつの興味じゃない話題だとすぐ「関係あるの?」「必要あるの?」とか排除しようとするし(笑)
たぶん、こいつはまたage進行だから発狂するよ(笑笑)

724:デフォルトの名無しさん
08/05/27 00:57:26
高慢かどうかはともかく、そいつの技術レベルが幼稚すぎるのが泣ける(泣)

>>715が指摘してるけど、>>704とか幼稚すぎるんだけど(泣)

725:デフォルトの名無しさん
08/05/27 01:13:56
おれは「質問してる」だけだというよりも、やってることは「教えて君」に近いなと思う。
傲慢だから、「質問」って堅い用語でごまかしてんだろうw
情報学とかjavaとかより心理学やった方がいいよ(きっと君は向いてると思う)。

726:デフォルトの名無しさん
08/05/27 01:14:28
創価大学w

727:デフォルトの名無しさん
08/05/27 02:34:59
>>704を見る限り確かに程度は低いな。大学じゃなくて独学でやってんじゃね?
age
age
age
おまえじゃ絶えられないんだろうけど(笑い)

728:デフォルトの名無しさん
08/05/27 03:04:25
何でJavaでやるのとか言う奴がいるのが不思議でたまらない。
そんなこといったら全てが「なんでJavaでやるの?」にならないか?
もっと考えものを言うべきじゃなかったのかな。

729:デフォルトの名無しさん
08/05/27 05:30:14
適材適所を考えたら数値解析にJavaを使うのは普通じゃないと思うけど。
これだけ便利なライブラリやソフトウェアが世の中に溢れているっていうのに
なんでわざわざ車輪の再発明をよりによってJavaでしようとするのか不思議。

730:デフォルトの名無しさん
08/05/27 06:26:58
5年後ぐらいにスクリプト全盛の世の中になると、数値解析は簡単なJavaでやるべきで、
GCあったとしても何でスクリプトでやるの?と同じことを考える人が出てくるんだろう。
適材適所を考えてJavaを選んでるだけど?君の未熟な技術力じゃそういうの気がつかないでしょ。

731:デフォルトの名無しさん
08/05/27 06:45:32
他の部分が Java だから仕方なく Java 使ったってんならまだしも、
演算子のオーバーロードすらできてない Java の BigDecimal を、
しかも sin みたいな基礎的なものから苦労して自作する必要まで
あるのに使うってのは、とても適材適所にはみえんのだが。

おまけにパフォーマンス的な結論は>>699で結局Java遅いから
JNI使え、になるわけでしょ?

732:デフォルトの名無しさん
08/05/27 06:58:09
>>731
パフォーマンスは実行時最適化ができないC/C++よりずっといいけど。

733:デフォルトの名無しさん
08/05/27 07:01:56
パフォーマンスに演算子のオーバーロードは関係ないと思うが?
もう話題に付いて来れなくて、論理破綻してるんだろうけど。

734:デフォルトの名無しさん
08/05/27 07:04:20
>>732
jvmはホットスポットあるからそうなんだけど、C++はtypeofとかで動的でもだめ?
でもライブラリもGPLか商用だし、そもそもC++(とC#)はカオスだからなw

735:デフォルトの名無しさん
08/05/27 07:08:26
C++はリフレクションないし面倒だから無理か。


736:デフォルトの名無しさん
08/05/27 07:11:05
>演算子のオーバーロードすらできてない Java の BigDecimal を、

これが君がほしい適材適所ですかww

737:デフォルトの名無しさん
08/05/27 07:22:30
C++の演算子オーバーロードはパフォーマンスを急激に悪化させるから
使わないほうがいい。

738:デフォルトの名無しさん
08/05/27 07:29:16
>>731
演算子のオーバーロードだけなら DSL 使えば良いだけだが。
まぁ、sin 自作してまでわざわざ BigDecimal 使おうとは思わんよな。

739:デフォルトの名無しさん
08/05/27 07:29:44
>>732
つまり、>>699は間違いだったと。

740:デフォルトの名無しさん
08/05/27 08:06:46
>>738
そうね。計算結果が欲しいだけなら既存のライブラリとか探して、
それ使ってみて許容範囲内なら使い続けるだろうし。

Javaでプログラム書く事自体が目的の場合はまた別だけど。宿題とか。

741:デフォルトの名無しさん
08/05/27 08:17:38
最近の研究で目新しいものとして、実行時最適化を繰り返すことによって
速度を加速度的に上げていくというものがある。
まず、実行時最適化のかかるJVM1上で実行されるJVM2を作る。
つぎに、実行時最適化のかかるJVM2上で実行されるJVM3を作る。
これを繰り返すことで理論上ソフトウエアのみでコンピューティング能力を
上げていくことができるというものである。
現在、JVM16までの成功事例が知られており、これは166MHz相当のCPU上で
3.2GHz相当の処理能力を持つということである。

742:デフォルトの名無しさん
08/05/27 08:35:21
>>731
ネタにマジレス乙

743:デフォルトの名無しさん
08/05/27 11:34:32
>>729
便利なライブラリやソフトウェアをJAVA側から軽々使える呼べるようにしたらいいじゃない。
絶対やらないのは知ってるけれど。どの環境でも動く、よりもむしろ役立つような

744:デフォルトの名無しさん
08/05/27 11:54:16
>>741
ファイル圧縮を繰り返したら無限に小さくなるってのと同レベルだな。

ってか、どこを縦読みすんだ、それは。

745:デフォルトの名無しさん
08/05/27 12:29:08






746:デフォルトの名無しさん
08/05/27 13:31:34
>>744
ベンチマークがある。
記憶域がネックのようだな。
URLリンク(www.spec.org)

747:デフォルトの名無しさん
08/05/27 13:34:45
>JAVA側から軽々使える呼べるようにしたらいいじゃない

この軽がる、使える、呼べる、というのは具体的には?

748:デフォルトの名無しさん
08/05/27 13:39:09
コスト比で言えばメモリーが半額になれば同じ価格で二倍の性能を得られるということか。
CPUの処理能力をニ倍にするよりメモリーを二倍にするほうが安上がりだな。

749:デフォルトの名無しさん
08/05/27 13:42:32
そもそも、HotSpotを使えばC++の2〜3倍高速になる。

URLリンク(www.intel.co.jp)

750:デフォルトの名無しさん
08/05/27 14:15:35
>>746
それは笑うところか?

751:デフォルトの名無しさん
08/05/27 14:18:56
>>743
JNAとかあるし、昔よりはマシにはなってると思うが。

752:デフォルトの名無しさん
08/05/27 15:33:11
>>748
その比べてるコスト比というのは(たぶんメモリとCPUを比べてるんだろうけど)、比べられるものなのか?

753:デフォルトの名無しさん
08/05/27 17:14:45
>>707
いやそもそもageてるお前が一番このスレの中でアホなんだけど


754:デフォルトの名無しさん
08/05/27 17:15:54
>>710
そんなに詳しくて自分がオタクじゃないのかw

755:デフォルトの名無しさん
08/05/27 17:26:47
>>710
> >>704
> それに必要な情報はもう書いてあるんだけど、おまえの知能じゃ読み取れないのか?いつまでも傲慢なやつだなw

なんか人違いレス違いしてるようだけど、俺は傲慢なレスなんかしてないよ。

> 任意精度・可変長精度だからscaleは不明、引数によっていつも違ってくるから、引数の情報(精度)を当てに出来ない。
scaleは不明ってことは無いだろ。乗算を繰り返すたびにscaleは大きくなっていくけど。
BigDecimal#scale()でscaleがわかるだろ。どっちが傲慢で知能が低いんだ?
引数の情報を当てにできないって何いってんだ。

> よって、ループ回数も最低でも30回以上(double桁程度)、初等関数値を出すのに、sqrtも混ぜると普通は100回1000回は当然期待の範囲内。
ループ回数が30回イコールdouble桁程度という考え方じゃあるまい。
sqrtまぜたら1000×1000で100万回を超えることもあるだろ。1000回では済まされない。自称知能が高いお前ならそれくらわかるだろ。
それをわからないで他人の知能が低いなどとほざいていたのか?

> これに複素数のマトリックス4x4のインバースとかもはいるし、コード上の計算は1秒間にループ1000回などあたりまえだし、それ以上。


> グダグダ核よりも、おまえみたいなオタクには、1秒間にループ1000回ぐらいって言う方が分かりやすいだろww

さっきと言ってることが違うな。1秒間にループ1000回ってなんだそりゃ。そんなもんCPUによって変わってくるじゃないか。
自称知能が高い奴が言うことじゃないな。そこまでやると100万回じゃ済まされないレベルだな。

> これぐらいの情報が書いてあったんだけど、そういうの想定してよw
駄目。エスパーじゃねえんだからアドバイスが欲しかったらちゃんと説明しろ。

756:デフォルトの名無しさん
08/05/27 17:27:10
>>753-754
オタク?そろそろニコニコ動画の方に戻ったらどうだ?

757:デフォルトの名無しさん
08/05/27 17:28:15
>>718
> 確かにいつも偉そうな事言ったり(専門用語使ったり)、
> 聞き返したり(>>704にたいに当然のことを)してるけど、

にたいに

焦っているぞ。慌てるな。
2chで仕切ってるやつっていったらひろゆきだけだろ。

758:デフォルトの名無しさん
08/05/27 17:29:07
>>721
お前の研究室の実態がよくわかった。
研究室で先輩や教授や助手ににこき使われているんだろ。
それでストレス発散目的でここにレスしていると。


759:デフォルトの名無しさん
08/05/27 17:32:27
>>723
> でもそういう仕切り屋に限って、高慢とか、自尊心だけはいっちょまえに高いけど、技術的には全く幼稚ってのが多くね?それもそいつの興味じゃない話題だとすぐ「関係あるの?」「必要あるの?」とか排除しようとするし(笑)
> たぶん、こいつはまたage進行だから発狂するよ(笑笑)

おいおい、自分がage進行しているだろ。
お前の研究室にそういうアホがいることはわかったから
専用スレがありそうな以下の板で愚痴を零して来い。

理系全般
URLリンク(science6.2ch.net)
情報システム
URLリンク(science6.2ch.net)
情報学
URLリンク(science6.2ch.net)
プログラマー
URLリンク(pc11.2ch.net)



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5392日前に更新/239 KB
担当:undef