パスワードを忘れた? アカウント作成
10811307 story
Windows

Microsoft、C#コードをネイティブコードにコンパイルする「.NET Native」を発表 130

ストーリー by headless
発表 部門より
insiderman 曰く、

MicrosoftがC#で書かれた.NET Framework向けのプログラムをネイティブコードにコンパイルする「.NET Native」を発表した。現在Preview Release版が公開されている(.NET Framework Blogの記事Microsoft .NET NativeMicrosoft .NET Native FAQCompiling Apps with .NET Native本家/.)。

C#などの.NET系言語では、コードをコンパイルすると中間コードが生成され、実行時にネイティブコードに変換されるという仕組みを取っていたが、.NET Nativeを使えばC/C++による開発と同様にネイティブコードを生成でき、アプリケーションの起動速度の高速化やメモリ消費の削減といったメリットを享受できるという。対象アーキテクチャは現在のところx64およびARMで、x86は今後対応する模様。また、当初はWindowsストアアプリ(いわゆるMetro UIベースのアプリ)の作成にのみ利用できるが、長期的にはデスクトップアプリなどすべての.NETアプリに対象を広げていくとのこと。Windowsストアアプリの多くがC#を使用しているため、Preview Release版ではC#コードだけをサポートしているが、.NET Nativeの対象を広げていく際にはF#やVBなど他の.NET言語に対応する可能性もあるようだ。

.NET Nativeを使用することで、Windowsストアアプリが最大60%高速に起動し、メモリー使用量が15%~20%減少するという。また、.NET Frameworkの必要な部分が静的にリンクされるため、実行環境の.NET Frameworkには依存しないとのことだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by sumeshi0206 (12305) on 2014年04月06日 16時14分 (#2576411) 日記

    .net全部とならないのが不思議

    まぁくそ遅いデスクトップアプリが少しでもまともにになってくれれば良いね

    でも例外はいたときの情報どうなるんだろうね?がっかりじゃなきゃいいけど

    • Re:なぜC#のみ? (スコア:5, 参考になる)

      by Anonymous Coward on 2014年04月06日 16時50分 (#2576426)

      C#でもすべての機能をサポートしているわけではないらしい。

      というか、以前から話に出てたクラウドコンパイルを外向けに公開しただけの話のような...

      この辺参考にした。
      http://ufcpp.wordpress.com/2014/04/03/net-native/ [wordpress.com]

      親コメント
    • by Egtra (38265) on 2014年04月07日 1時16分 (#2576614)

      C#の理由はMicrosoft .NET Native FAQ [microsoft.com]の1個目に書いてありますね。C#以外は将来に期待ということで良いのではないでしょうか。

      Will F# or VB or my favorite language be supported?

      This preview release supports only C# code because it’s the .NET language used by most Store apps. But nothing prevents us from supporting any .NET language when we broaden our focus.

      親コメント
    • by Anonymous Coward

      今はWindowsストアアプリにしか利用できないそうだよ

    • by Anonymous Coward

      今どきC♯でくそ遅いデスクトップアプリって間違いなく開発者(コード)の方が問題でしょ?
      くそ遅いJavaで作ってるアプリの方がどうにかして欲しい

      • by Anonymous Coward on 2014年04月06日 17時56分 (#2576447)

        すくなくともJavaでなら、下手にAOTコンパイラでネイティブコード作るより、
        HotSpotVMで実行時最適化した方が効率がいいから。

        AOTコンパイラが廃れたのはそういう理由。

        だからC#用としてもとっても今さら感があるし、使うメリットについてもすごく疑問。

        親コメント
        • by Anonymous Coward

          AOTコンパイルでも実行時プロファイルを取るとかして、JIT相当の最適化を行うことはできると思うんだけどね。

    • by Anonymous Coward

      Javaアプリはクソ重いけど、.NETアプリが重かったのってv2.0ぐらいまででしょ。

      • by Anonymous Coward

        .Netが重いというよりWPFがクソ重いよ。

    • by Anonymous Coward

      なんででしょうね。同じ中間コードで、同じように実行時にネイティブコードにするのだから、同じように事前にネイティブコードにすることができそうなものだけど。

  • by miyuri (33181) on 2014年04月06日 20時15分 (#2576493) 日記

    既存のバイナリでも嬉しくなるように、普通に起動時間を短くしてよ。

    • by Stealth (5277) on 2014年04月07日 9時12分 (#2576673)

      インストーラーがセットアップで ngen 通していればセキュリティーチェックだなんだとか、諸々含めた検証を通した後のネイティブイメージをシステムに登録してくれるし、ちょっとしたツールとかでも利用頻度高いなら (置きたい場所に置いた上で) ngen 通しておくだけでも幸せになれると思うのですが。(パスとシグネチャーをベースに ngen 後のイメージを利用するかを確定したはずなので)
      アプリがでかすぎて ngen イメージ確定までに時間かかるって話だったら、そもそも作りを見直した方が良い気がします。(.NET の exe ってかなり小さいし)

      そこまでやった上で遅いっていうことなら、多分 .NET がどうこうっていう以前のレベルでシステム側の遅さが問題なんじゃないかと。

      # .NET Framework の更新で ngen にアホみたいに時間がかかる話の方が余程……。

      親コメント
  • #なんかやたら皮肉が多いな。

    まあそれはそれとして、最初に機能性(さらには言語)が制限されてるのは、GC動作とかJIT/VM/などで動いていることが前提になるとか関係する系とかとの作業量トレードオフかなぁ...

    他の言語でもそうだけど、なかなか大変だろうな、がんばってほしい。

    --
    M-FalconSky (暑いか寒い)
  • by yutam (46616) on 2014年04月06日 15時48分 (#2576401) 日記
    もっと早い時期ならインパクトあったのに、今更感ただようC# なぜMSはF#をもっと押さないのだろ? これからは並列、並行処理を楽に書ける言語が求められると思う。
  • by Anonymous Coward on 2014年04月06日 16時45分 (#2576423)

    また、.NET Frameworkの必要な部分が静的にリンクされるため、
    実行環境の.NET Frameworkには依存しないとのことだ。

    Joel on Softwareの「申し訳ありませんが、リンカをいただけないでしょうか? [joelonsoftware.com]」
    (日本語訳は書籍版に収録)で要望されていたことが、ようやく実現に向かい始めたわけだ。

  • by Anonymous Coward on 2014年04月06日 17時23分 (#2576441)

    実行速度の上昇よりもアセンブリからソースコードが簡単に読めなくなることが嬉しいって人も多いと思う
    ポインタが無いのでC++で作成するよりは容易だろうけど難読化で誤魔化すよりはクラックされにくくはなるだろうし

  • by Anonymous Coward on 2014年04月06日 17時58分 (#2576450)

    え?

  • by Anonymous Coward on 2014年04月06日 19時59分 (#2576489)

    Windows8では動いてRTでは動かないnativeストアアプリが氾濫してエコシステムがいきなり崩壊する予感がするんですけど。
    パフォーマンスがシビアなもののぞいて非推奨にしておいてくれるよね?

    • by Anonymous Coward

      x64とARMと言う事なんで、どっちかってーと非力なRTでの高速化技術なんじゃね?
      むしろx86を切りたいんじゃ。

      #Phone? 知らない子ですね…

      • by Anonymous Coward

        WindowsPhoneもARM対応してるならカバーできるのでは

        • by Anonymous Coward

          あっちはフルセットの.NET Frameworkではなくて、Compactってつく方だからどうかなーって…。
          もともと直接的な互換が無いですし。

    • by Anonymous Coward

      そういうことでしょう。
      RTを存続するメリットが誰にもない気がする。

    • by Anonymous Coward

      Phoneがあるだろ...

    • by Anonymous Coward

      FAT Binary の時代キタな。

typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...