Androidアプリ、C#で書くとJavaの10倍速いことが判明 C言語NDKとほぼ同じ速度
■ このスレッドは過去ログ倉庫に格納されています
https://sec.ch9.ms/ch9/de11/2495af1a-6033-409d-983b-c0912b4ade11/WinDev018UWPXamarin_Custom.jpg Your world is not just one platform nor device. With Xamarin, you can learn to target Windows, iOS and Android while providing native experiences. James will quickly deep dive into how to quickly execute this. He shows how to do build an application that targets Windows, iOS, Android, and even has a web front end as well! (動画) https://channel9.msdn.com/Events/Windows/Windows-Developer-Day-Fall-Creators-Update/WinDev018 JAVAという言語そのものは別に悪くないけど、 JVM上で走らせるからクソ遅いんだよな。 ネイティブコードが速いのは当たり前だけど androidのハードの差をどう吸収するのって話になる >>76 今はARMしかないんだから別に吸収する必要なくね? >>59 それもあるだろうけど、Unity製とかならAndroidに最適化されてない せっかくスッキリJava読んだのに無駄になるのかなぁ JVMはサーバーサイド最速に倒されてるからな サーバー用途ならCとかで作られるアプリよりも速い まじか 昨日アンドロイドスタジオインストールしたばっかりなのに cでも行ける? WindowsPhoneが生きてりゃあなあ 泥なんかすぐにも投げ捨てたいが Javaは失敗した言語 Cが難しくてわからないバカ用 >>87 ユニコーンよりマーク2のが動きが軽快だった。 はぁ、数年前から.netネイティブコンパイラは有ったけど、今回、標準でバンドルされる様になったの? >>81 HotSpotVM以外も早いんかね OpenJDKとかどうなんだろう Xamarin.DroidはC#で閉じて実行するぶんには速い。 nativeからのコールは場合によってはnative→ART→Monoと2回マーシャリングされるので遅くなる。 Win32みたいにGoogleがnativeで色んな低レベルAPI用意してくれたらXamarin最強になるんだけどねぇ。 >>5 SOURCE-COMPUTERとOBJECT-COMPUTERは?昔専門学校生の頃COBOLの実習で、ピリオドが抜けていてコンパイルエラーってよくあったな。 >>95 WORKING-STORAGE SECTION.は? >>94 Xamarin.Anndroidは隠しオプションでLLVMで事前にネイティブコードを吐くことができる >>97 マジレスすると学生の時はそれ書かなかったな。DATA DIVISIONのみ。 >>99 使うAPIによってはAOTコンパイルでも結局2回JNIを経由しちゃうのよ。 Javaなら1回なのに。 これってC♯が優れてるのではなくて 単にネイティブコードとjavaとの速度差なのでは? >>103 ネイティブコードの対義語はjavaではなく中間コード。 速度は速いかもしれないけど グラフィック系の命令ってどうなってるんだっけ? .NETでは事務アプリしか作ったことないからさっぱりワカラン DATA DIVISIONってギャバンで叶和貴子が言いそうだよな ベンチマーク取るならなんでアセンブラで書いたコードと比較しないんかね。 アセンブラはCの10倍は速い。 >>110 それはないw 今時のCコンパイラは人が下手に書くより速い。 いまどきのコンパイラには最適化と言った冗長なレジスタ操作を省いたり、重複したコードをまとめたりする機能が付いてるんだよなぁ。 だから人間がアセンブラで書いたコードよりシンプルな処理を吐き出して来るんだ。 まあ、おかげでデバッグしたくてもソースとの対応が難しいんだけどな。 LLVMなんて、ある関数呼び出しにおいてその実引数による返り値が一定と判断するとそもそも関数呼び出しコードさえ削除されて即値のコードが吐かれる。 単純な関数ならともかく、複雑な関数だと人間によるリファクタレベルの最適化じゃ太刀打ちできない。 LLVMはコンパイル時に内部で仮想的に実行して最適化判定するんだろうね。 >>113 新し目のgccでもその最適化してくれるで >>113 でも実行時のジャストインタイムでのCPU種別毎の最適化ができないだろ 中間コード方式じゃないから一度バイナリにして配布してしまったら その後でCPUスペックやコア数違う環境では最適実行にならない Javaクライアントアプリでは遅くて使いモノにならんのは当初から言われてた 結果、サーバーサイドアプリ(サーブレット、JSP)がほとんどになったハズなのに、Android出てからクライアントアプリもJavaでってGoogleが採用しちゃったのが元凶 GoogleがJava以外で開発言語提供してたら状況変わってた >>31 「いのうえ」で変換かけたら「#上」で出てくるから上を消せばいい >>117 > でも実行時のジャストインタイムでのCPU種別毎の最適化ができないだろ そうでも無い。 Javaって普及してるってだけでただのゴミだもんな。 >>115 新しめのgccはコアにLLVM使ってたような? >>117 JITの最適化は都市神話レベルじゃね? そもそもLLVMはコンパイル時にJITの最適化してるようなもんだし。 >>121 libgccjit.soみたいなののこと? これが本格的に使えるようになって C#やJavaのようなGCの仕組みも実装されれば C/C++もやっとサーバーサイドでJava並みに速くなれるよね UnityでIL2CPP通さなくて良くなってビルドが早くなるみたいな話? >>110 >>112 実際に簡単なサンプルコード書いて動かして比べてみ。 Cは簡単なコードでもスタートアップライブラリやスタックオーバーフローチェックライブラリなどが自動的に組み込まれるので バイナリサイズがかなりでかくなる。アセンブラなら数百バイトのものが数十k〜100kバイトを越えるサイズになる。 これだけ差があるとロードするだけでも時間差が大きい。本来やりたい処理を実行する時間よりロードする時間のほうが長くなる。 サーバ上のアプリのようにたくさんアクセスされて何度も実行される処理ならさらに差が出る。 数百バイトならCPUのキャッシュに入ってしまってディスクからリロードする時間さえ不要になるが、 Cのバイナリならでかいから一々ディスクから読み直さなければならない。 >>128 それはないw CPUキャッシュの次はHDDとかの二次記憶ってw 一次記憶のSDRAMの存在忘れてねぇ? >>107 CGI+がラップしてあってそれを使える 俺もあまり使わんから詳しくはわからん >>128 んでそれでサイズ可変のJSONとかどう処理するんだよ どういうこと?Androidアプリが10倍ヌルサクになるの? >>125 サーバサイドの開発案件はふつーにターゲットに合わせてbuildするだけでしょ。 Javaは言語として悪くはないと思うが普及と引き換えにソースがゴミ化した >>135 後方互換気にした影響で、言語仕様も美しくないしな。 それもあって、JVM言語乱立してるんだろうね 考え方はいいんだけどなあ。トロいのは致命的だったな。 >>68 初期のオラクルの立ち上げに膨大な開発費が掛かっているからしょうがない。 正直、オラクルだけがSQLを満足に叩ける実装だったし、処理系以外にも稼働 中のストレージ処理とかで他に追随できない製品を出していた。 SQL-92./2000 なんかの標準規格も、以降は全てオラクルに倣っている。 オラクルの実装がこなれてきた、Cybaseもオラクルの機能を模倣するように なっていまMSのSQL Server になっているし、MySQLなんかも出てこなかった。 そういう会社がいまJavaやMySQLを逆に吸収し自社の基盤としてるのは面白いと思う。 じゃぁJavaしかわからん俺が今から調べながらC#で書くぞ。 10倍早いんだよな? >>140 やってみること手を動かすことは大事。 とりあえずAndroid StudioとXamarinの環境を作るんだ。 アンドロイドはあれだけの機種の 互換性取るためにJava使わざるを 得ないからね x86サポートなんか やめたら良いのに >>142 機種間の互換性はOSやライブラリーで取るもんだろ? >>143 流石にCPUアーキテクチャが違ったら無理w >>144 いや、x86版Androidにはバイナリトランスレータが乗ってるので ARMネイティブアプリも動く 中間コード→ネイティブにリコンパイルしてネイティブで実行できるようにはならんの? むしろVMコードを直接実行出来るCPU作るのです。 本当はjavaだってarmはハードウェアアクセラレータあるから 本気だせば遅い訳じゃねぇんだけど つまるとこ、使ってないだけじゃろ ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる