アカウント名:
パスワード:
ここ数年にわたり、PCにおける一般的な搭載メモリ量が2GB~4GB程度で十分、それ以上は各種コンテンツ編集やビルド作業、仮想マシン起動などの重たい作業をしない限りは不要というのが続いていますね
スマホOSにおいては、フラッシュメモリをストレージにする前提からメモリが足りなくなったときにスワップアウトはさせずアプリをステートセーブして終了させる + 次回はステートロードしつつ起動させるという実装になっている点が異なりますが、これが大きく影響するのは
「重たいゲームを複数同時に起動し、さらに裏でゲームが終了していることも許さない」
状況だけ
> iPhoneにおいてはこのような利用ケースごとのメモリ要求量のバラつきはとても困った要素になりますね> ラインナップが少ないということは自由が少ないということ、まさにその通りになります
毎度毎度、なんかAppleを貶さないと気が済まないみたいだがw、違うOSでメモリの量を比べても意味があるまい。iOSのメモリ利用効率はAndroidよりはるかに良い [cultofmac.com]ので、もともとそんなにメモリが要らないという話だよ。
Androidはそもそもの成り立ちがLinuxの上にJava乗っけてという変態構造の上に、JITが走ったり、GCが走ったりと裏でやってることが多く、メモリとプロセッサパワー食いな体質のOSだ。
Linuxの上にJavaって別に変態とは言えないでしょう。携帯Javaとかも基本そんな構成ですよ。ちなみにAndroidは今はAOTですし。
リンク先の記事ではAndroidはGCがあるのでメモリがたくさんいると書いてありますが、要はメモリが多めだと開放するまでに時間が稼げるという話であって二倍の内容が保存できるという話ではありません。そんな魔法の技術はありません。そしてGCが働くために必要な余計なメモリなんてギガバイト単位の話ではありません。なにしろ(Java用の)メモリ2MBとかでも機能していたのですよ?加えてJavaではGCがあるというなら、ネイティブならメモリリークがあります。
携帯Javaとかも基本そんな構成ですよ。
それはアプリの実行環境としてJavaVMが載っているという話だろう。Androidの場合はアプリ実行とは関わらない、OSそのものの機能の多くがJavaで書かれていて、Linuxの上で動くVMの上で動いている。そんなのは他ではあまり見かけないが。
加えてJavaではGCがあるというなら、ネイティブならメモリリークがあります。プログラマーが努力すればメモリ効率は上げられますが、Javaでもこまめにメモリを開放すれば同じことができます。
いや、プログラマの技量の落ち度や、「努力すればできる」みたいな話まで持ちこんでくるのはちょっと違うんじゃないかなw
まぁ他なんてそんなにないですけど、WndowsのUWPやWPFなら結構.NET Frameworkですよね。確かに今でもネイティブで書かれている部分が多いですけど、Androidも下層はそれなりにネイティブですよ。多分。ちょっとやり過ぎかとは思いますが変態ってのは言いすぎかと。
言いたかったのはそういう話じゃなくて、
Linuxの上にJava乗っけてという変態構造
という表現が変で、Linuxの上に乗っけないならどうするの?という違和感ということです。
プログラマの技量の落ち度や
そうですね。大抵のJavaプログラマは開放なんてしないでしょうから言語機能としては上位互換だとしても差とみなすべきです。ただ4GBとかいうメモリ容量の話でGC云々ってのがおかしいのは変わりません。
そういえばSwiftにはGCがないのかと思って調べてみたらないみたいですね。それからメモリリークはそれなりに起きづらいようだ。
JavaアプリのAPIとして選ぶんじゃなくて、ネイティブなアプリが動くようにすればよかったんでねーの?Oracleと喧嘩しなくて済んだしさw
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー
実際のところでいえば (スコア:0)
ここ数年にわたり、
PCにおける一般的な搭載メモリ量が2GB~4GB程度で十分、
それ以上は各種コンテンツ編集やビルド作業、仮想マシン起動などの重たい作業をしない限りは不要というのが続いていますね
スマホOSにおいては、フラッシュメモリをストレージにする前提から
メモリが足りなくなったときにスワップアウトはさせず
アプリをステートセーブして終了させる + 次回はステートロードしつつ起動させる
という実装になっている点が異なりますが、
これが大きく影響するのは
「重たいゲームを複数同時に起動し、さらに裏でゲームが終了していることも許さない」
状況だけ
Re: (スコア:1)
> iPhoneにおいてはこのような利用ケースごとのメモリ要求量のバラつきはとても困った要素になりますね
> ラインナップが少ないということは自由が少ないということ、まさにその通りになります
毎度毎度、なんかAppleを貶さないと気が済まないみたいだがw、違うOSでメモリの量を比べても意味があるまい。
iOSのメモリ利用効率はAndroidよりはるかに良い [cultofmac.com]ので、
もともとそんなにメモリが要らないという話だよ。
Androidはそもそもの成り立ちがLinuxの上にJava乗っけてという変態構造の上に、
JITが走ったり、GCが走ったりと裏でやってることが多く、メモリとプロセッサパワー食いな体質のOSだ。
Re: (スコア:0)
Linuxの上にJavaって別に変態とは言えないでしょう。
携帯Javaとかも基本そんな構成ですよ。
ちなみにAndroidは今はAOTですし。
リンク先の記事ではAndroidはGCがあるのでメモリがたくさんいると書いてありますが、要はメモリが多めだと開放するまでに時間が稼げるという話であって二倍の内容が保存できるという話ではありません。そんな魔法の技術はありません。
そしてGCが働くために必要な余計なメモリなんてギガバイト単位の話ではありません。
なにしろ(Java用の)メモリ2MBとかでも機能していたのですよ?
加えてJavaではGCがあるというなら、ネイティブならメモリリークがあります。
Re: (スコア:1)
携帯Javaとかも基本そんな構成ですよ。
それはアプリの実行環境としてJavaVMが載っているという話だろう。
Androidの場合はアプリ実行とは関わらない、OSそのものの機能の多くがJavaで書かれていて、
Linuxの上で動くVMの上で動いている。そんなのは他ではあまり見かけないが。
加えてJavaではGCがあるというなら、ネイティブならメモリリークがあります。
プログラマーが努力すればメモリ効率は上げられますが、Javaでもこまめにメモリを開放すれば同じことができます。
いや、プログラマの技量の落ち度や、「努力すればできる」みたいな話まで持ちこんでくるのはちょっと違うんじゃないかなw
Re:実際のところでいえば (スコア:0)
まぁ他なんてそんなにないですけど、WndowsのUWPやWPFなら結構.NET Frameworkですよね。
確かに今でもネイティブで書かれている部分が多いですけど、Androidも下層はそれなりにネイティブですよ。多分。
ちょっとやり過ぎかとは思いますが変態ってのは言いすぎかと。
言いたかったのはそういう話じゃなくて、
Linuxの上にJava乗っけてという変態構造
という表現が変で、Linuxの上に乗っけないならどうするの?という違和感ということです。
プログラマの技量の落ち度や
そうですね。大抵のJavaプログラマは開放なんてしないでしょうから言語機能としては上位互換だとしても差とみなすべきです。
ただ4GBとかいうメモリ容量の話でGC云々ってのがおかしいのは変わりません。
そういえばSwiftにはGCがないのかと思って調べてみたらないみたいですね。
それからメモリリークはそれなりに起きづらいようだ。
Re: (スコア:0)
という表現が変で、Linuxの上に乗っけないならどうするの?という違和感ということです。
JavaアプリのAPIとして選ぶんじゃなくて、ネイティブなアプリが動くようにすればよかったんでねーの?
Oracleと喧嘩しなくて済んだしさw