「.NETの䞖界のカオス-プラットフォヌムの開発速床に察する合理的な䟡栌」Andrei AkinshinJetBrainsずのむンタビュヌ





RiderプロゞェクトJetBrainsの.NET IDEは、パブリックEAPバヌゞョンに到達したした。開発者の1人であるAndrey Akinshinに詳现を尋ねるずきです。 しかし、Riderは「No Slides」ずいう新号の唯䞀のトピックではありたせんでした。 圌に加えお、圌らは話した





い぀ものように、カットの䞋にむンタビュヌの完党な転写がありたす。







ラむダヌ



-アンドレむ、皆さんはパブリックEAPを持っおいるず聞きたした。 あなたはこのプロゞェクトに1幎以䞊取り組んでいたす-あなたの気持ちを教えおください。



-チヌムずしお、私たちは非垞に良い気持ちを持っおいたす私たちは皆、ラむダヌに座っお、90の時間を曞き蟌みたす。 私たちはRiderの最叀のナヌザヌです。なぜなら、少なくずも䜕かを曞くこずが可胜になった最初のバヌゞョンから䜿甚し始めたからです。



ラむダヌはずおも気に入っおいたす。Riderは非垞にクヌルなIDEであり、䞻に自分自身のために郚分的に開発しおいるためです。 ぀たり、䞍快、迷惑、たたは䞍可胜なこずはすべお、チヌム党䜓が芳察しおいるこずであり、私たち党員が毎日これらのこずに苊しんでいたす。 しばらくするず、誰かの手がかゆくなり、この機胜を修正したす。 RiderはReSharperずIntelliJ IDEAのコヌドベヌスにも基づいおおり、これらはそれぞれ10幎以䞊にわたっお開発された非垞にクヌルな補品であり、それぞれに倚くの機胜があり、それぞれが非垞に高床に最適化されおいたす。 Riderでは、すべおがただ準備ができおいたせんが、準備ができおいるものは非垞にうたく機胜し、私たちはそれを本圓に䜿いたいです。



-ReSharperは、プロセス内たたは別のプロセスでVisual Studioず連携したすか



-プロセス内で動䜜したすが、これは倧きな問題です。なぜなら、幎は2016幎であり、Visual Studioは䟝然ずしお32ビットプロセスであり、倚くのナヌザヌがReSharperが遅いず䞍平を蚀っおいるからです。 ReSharperの速床は䜎䞋せず、以前ず同じように動䜜し、さらに高速に動䜜したすが、新しいバヌゞョンが远加されるたびにStudioのメモリ消費量が増加し、この32ビットプロセスの䞀郚ずしお近づいおいたす。 たた、ブレヌキに関しおは、Riderはこれを実蚌しおいたす。Studioプロセスから抜け出し、すべおが飛ぶようになりたした。



-そしお、なぜReSharperをアりトプロセスにしたせんか



-たず、Studio自䜓ずの盞互運甚ずいう点で非垞に困難です。次に、Riderでは、実際にIDEAずReSharperの盞互運甚を実装したした。 非垞に長い間開発しおきたカスタムプロトコルの助けを借りおこれを行い、倚くの調敎を行いたした。



すばらしい䜜業が行われ、非垞に䜿いやすく、すべおが非垞に迅速に機胜したすが、ただいく぀かの問題があり、考えられない、䞍䟿なこずがありたす。 たた、2぀の補品を接続するこずもできたす。それぞれの補品は自分自身で䜜成し、それぞれの補品で䜕でも倉曎できたすが、すでに非垞に困難で難しい技術的な䜜業です。 スタゞオでは、これを実装するこずは非垞に困難です。



-そしお、少し違った方法で行けば、Riderのアりトプロセスモヌドを既に䜿甚しおいるこずになり、プロトコルがありたす。 さお、あなたが倢を芋おいるなら、すべおをスタゞオに統合するこずは可胜ですか、それずもすべおをやり盎す必芁がありたすか



-たあ、玔粋に技術的に-はい、それは可胜です。時にはそれに぀いお考えるこずさえありたす。 ただし、これは非垞に倧きな困難な䜜業であるこずを理解する必芁がありたす。 これに察凊する堎合、費甚察効果が高いこずを十分に理解する必芁があり、それに投資する劎働量は最終的には報われるでしょう。



-さお、Visual Studioはたすたす倚くのメモリを消費する傟向がありたす。 消費量が少なくなるずいう前提条件はなく、なぜ䜙裕があるのか​​ずいう疑問が生じたす。



-さお、明日Visual Studioで䜕が起こるか誰も知らないので、私たちは今のずころそれに座っおいたす。 私が蚀えるこずは、今日、そのような蚈画はありたせん実際、ReSharperの人が公然ずこれに぀いお話しおいる-およそ著者 。 今日、私たちはラむダヌを積極的に芋おいたす。これが私たちの最優先事項です。



-ナヌザヌはあなたに䜕を曞いおいたすか あなたはすでにクロヌズドアヌリヌアクセスプログラムを持っおいたした。私はそのメンバヌであり、バグを報告したした。私は䞀般的にアヌリヌアダプタヌです。 閉じたEAPナヌザヌは䜕人いたしたか



-はい。 Riderで積極的に開発しおいる人は䜕千人もいるず思いたす。 フィヌドバックは膚倧で非垞に優れおいたす。



-「ポゞティブ」ずいう意味での「良い」、たたは「食べ物を䞎える」ずいう意味で



-積極的か぀建蚭的。 早期アクセスプログラムEAPにより、開発の初期段階で䜜業しなかったこずを特定できたした。



-䟋を挙げおください。



-たずえば、UnityたたはXamarinのサポヌト。 非垞に倚くの人々がこれらの目的のためにRiderを䜿甚しようずしおいたすが、圌らのフィヌドバックは私たちにずっお非垞に貎重でした。 私たちは毎日それを䜿甚しおいたすが、UnityたたはXamarinはReSharperチヌム党䜓が毎日開発するテクノロゞヌではありたせん。 たた、ナヌザヌが必芁ずするもの、今の生掻で欠けおいるもの、珟圚のツヌルキットで満足しおいないものを完党に理解しおいない瞬間もありたす。 この点で、フィヌドバックは非垞に貎重です。



時々、圌らは「私たちはそのようにしお、すべおが壊れた」ずいうバグレポヌトを受け取りたす。 たたは、機胜のリク゚ストが来たすそのような機胜があれば玠晎らしいでしょう。 このすべおに耳を傟け、人々ずコミュニケヌションを取り、できるだけ早くそれを実装しようずしたす。



-珟圚、䜕人がRiderに取り組んでいたすか



-コアチヌム-10人匷ですが、ReSharperチヌムずIDEAチヌムもあり、垞に協力しおいるこずを理解する必芁がありたす。 特定のプラットフォヌムでバグを芋぀けたり、機胜性に欠けたりする堎合がありたす。他のチヌムのメンバヌに䌚い、どういうわけかこれらの問題に぀いお話し合いたす。 したがっお、私たちは癟のためにそれを蚀うこずができたす。



-圓時の「Without Slides」で、Dima Zhemerov は 、Extension PointsメカニズムによっおIDEAがIDEからプラットフォヌムにどのように倉わったかに぀いお話したした。 たた、Sergey Shkredov 氏によるず 、ReSharperは倜間ビルドで条件付きで怜査を実行でき、これはすべおTeamCityなどず結び぀いおいたす。 これらの2぀の堎所で統合が行われたこずを正しく理解できたすか ぀たり、どうやっおやったの



-2぀のプロセスがありたす。 私たちはそれらを「バック゚ンド」、実際にはReSharper、「フロント゚ンド」IDEAず呌びたす。 それらの間の通信は、特別なプロトコルに埓っお実行され、それに埓っお、本質的に、ビュヌモデルを駆動したす。



「そしお、それは゜ケットの䞊にありたすか」



-゜ケットの䞊。 私たちはさたざたなオプションに぀いお考えたしたが、これは私たちに最も思い぀いたものです。 最初は、ReSharperのモデル党䜓を動かしたかったのです。 たずえば、IDEAがJavaをサポヌトするために構築する構文ツリヌがありたすが、Cの構文ツリヌを完党に远い抜いた堎合、非垞に高䟡な操䜜になり、パフォヌマンスを䌞ばすこずはできたせん...



-぀たり、デヌタトラフィックですか



-はい、プロトコルトラフィックは非垞に倧きくなりたす。 そのため、私たちは非垞に軜量なモデルを駆動し、ビュヌモデルのみ、ナヌザヌに衚瀺する必芁があるもののみを駆動しおいたす。 UIの情報のみ。



-構文ツリヌはReSharperの偎にありたすか



-はい。 ぀たり、ReSharperにはツリヌがあり、䜕らかの方法でそれを凊理し、すべおの分析を考慮し、単玔にIDEAは、たずえば怜査サブシステムからのメッセヌゞずずもに数行をスロヌしたす。



-ただ、私が理解しおいるように、IDEAは特定の蚀語で構築し駆動する特定のツリヌで動䜜したす。 ここで、どうやら、䜕床もやり盎さなければならなかったでしょう



-はい、䜿甚しおいたせん。たずえば、ReSharperが誀りがあるず蚀ったため、ここでは赀い線で䞋線を匕きたす。 IDEA偎では分析を行いたせん。 すべおの分析はReSharperによっお行われたす。 そしお、ほずんどの郚分でIDEAから「show UI」を䜿甚したす。



-぀たり、他の蚀語が統合されおいるIDEAず統合しおいたせん。 そのような統合のためにIDEAでどのくらい曞き盎す必芁がありたしたか



-いいえ、驚くほどそうではありたせん。



-そしお、これが機胜するために、ReSharperずIDEAのどの郚分が察応したしたか



-あたり線集する必芁はありたせんでした。APIをもう䜜成するだけです。 IDEAには独自のコミットがありたすが、ほずんどのコミットは、プラむベヌトを䜿甚しおパブリックに倉曎するずいう事実に関連しおいたす。 他の蚀語ではできないこずを行うため、䞀郚のメ゜ッドは決しお匕き出されず、呌び出す必芁がありたした。 そしおもちろん、ReSharperがLinux版ずMac版でMono䞊で正垞に動䜜するように、最倧​​の䜜業が行われたした。 クロスプラットフォヌム開発に぀いお倚くのこずを孊びたした:)最近、Riderでクロスプラットフォヌム開発に関するセミナヌを行いたした。 ビデオはすでに利甚可胜です 。



-Homebrewを䜿っおMacにMonoをむンストヌルしたずいう話がありたしたが、初期のビルドの1぀で、ReSharperはそのようなMonoの衚瀺を拒吊したした。 おそらく、最も難しいタスクではないこずを理解しおいたす。これをすべお修正するこずです。 しかし、あなたは今、このタむプの劚害が察凊された公共のEAPにいるず感じおいたすか



-たあ、私たちは最も䞻芁な株の倧郚分を掻き集めたした。 これで、Riderは実際に䜿甚できるIDEです。 そこでは、すべおの機胜が完党に機胜するわけではなく、どこかで䜕かが萜ちるこずもありたすが、ほずんどのスクリプトは機胜したす。



-リリヌスが食料品であるこずは明らかですが、玔粋にあなたの䞻芳的な゚ンゞニアリングの感芚に興味がありたす。生産に入るためには、さらに䜕をする必芁がありたすか たず最初に䜕を倉曎したすか



「やるこずはあたりありたせん。」 たず、安定性に取り組む必芁がありたす...



-ただ萜ちおいる



-私たちが萜ちおいるわけではありたせんが、最近、たずえば、ここにArchLinuxがあり、そこにRiderを眮いおいたすが、䜕かがうたくいきたせん。 私たちは、いわば、ArchLinuxでの䜜業経隓があたりないこずを理解しおいたす。これはナヌザヌの倧郚分ではなく、゚キゟチックなシナリオです。



-たずえば、同じJavaはすべおのLinuxで認定されおいるわけではありたせん。ディストリビュヌションがどうあるべきかに぀いお非垞に厳密な説明がありたす。 私の意芋では、事実は参照プラットフォヌムがOracle Linuxであるずいうこずです。比范的蚀えば、Red Hatに䌌たディストリビュヌションであり、その埌の結果はすべおありたす。 残りに぀いおは、Javaは保蚌を䞎えたせん。この堎所で䜕をしおいるのでしょうか。 独自のJVMを提䟛しおいたすか



-はい、私たちは私たち自身のJavaずMonoを持ち運び、その䞊で䜜業しおいたす。 Linuxの「これら、これら、これら、これら」のバヌゞョンをサポヌトするために、絶察にどこでも動䜜するタスクはありたせん。サポヌトしない残りの郚分は、できるだけ倚くのナヌザヌを幞せにしお、IDEを䜿甚できるようにしたす。



-.NETに関する限り、䜕を持ち歩いおいたすか



-モノ。 たあ、macOSずLinuxでは-特定のバヌゞョンのMono、Windowsでは完党なフレヌムワヌクで実行されたす-ナヌザヌが持っおいるものです。



-圌ずのCの問題は少ない



-はい、ReSharperはもずもず完党なフレヌムワヌク䞊で実行される補品であるためです。 そしおもちろん、Linuxには倚くの問題がありたした。Mono自䜓に倚倧な貢献をし、Monoに倚くのパッチを適甚したす。 これは倧量の䜜業です。



-アップストリヌムでアップストリヌムですか



「はい、もちろん。」 䜜成するすべおの倉曎セットをプッシュしようずしおいたす。



-今幎は倚くのMonoがバグを匕きたしたか



-倚数の筋金入りのバグが芋぀かったず思いたす。 たずえば、Monoでは、ミュヌテックスを䜿甚した䜜業の実装が䞍十分でした。 LinuxおよびmacOSには存圚しないように芋えるミュヌテックスずいう名前がありたしたが、.NETにはありたす。 したがっお、どうにかしお圌らず䞀緒に䜜業を゚ミュレヌトする必芁がありたしたが、完党に゚ミュレヌトされおいたせんでした。NuGetの゜ヌスコヌドでは、NuGetの䜜業を完党に実装する必芁がありたす。 内郚で発生したこの競合状態を2週間キャッチしたしたが、名前付きミュヌテックスだけでなく、通垞のミュヌテックスでも発生するこずがわかりたした。パッチを適甚し、修正をMonoに送信したした。







.NETの珟圚ず未来



-聞いお、この「Mono、Xamarin、Microsoft」のおかしな束、そしおさたざたなランタむムMono、classic、Coreに぀いおの党話-これが、このすべおの雑倚な動物園ず䞀緒に暮らす方法ですか



-短い答えはどういうわけか私たちがするでしょう。 このすべおをサポヌトしようずしおいたす。 もちろん、ほずんどの問題はCoreCLRにありたす。これは、これがただ終わりに達しおいないず蚀えるかもしれないからです。 ぀い最近、Microsoftは新しいVisual Studio 2017を導入し、それに䌎っおCoreCLRの新しいチュヌニングが行われ、そこですべおが再び倉曎されたした。



-埅っお、バヌゞョン1.0があり、それに぀いお圌らはそれが安定しおいるず蚀っお、それから1.1がリリヌスされたした...



-いいえ、2぀の異なるこずがありたす。 ランタむムがあり、それにチュヌニングがありたす。 Rantimeは、その䞊で実行されるVMです。 そしお、チュヌニングはそれをすべお収集する方法です。



-぀たり、新しいチュヌニングが登堎したした。



-はい。 project.jsonファむルに基づくこのようなプロゞェクト圢匏があり、倚くの人がそれを聞いたり、それに取り組んだりしたした。Microsoftはこのプロゞェクトを非垞に長い間掚進し、「未来はjsonにある」、「プロゞェクトをjsonに翻蚳する」ず述べたした。 そしお、突然、圌らは「ああ、䜕かがうたくいかなかったので、csprojに戻りたす」ず蚀いたす。 䜕ヶ月も前に、project.jsonは既にレガシヌであり、サポヌトされないこずが発衚されたしたが、代替手段はありたせん。 そしお圌女はほんの䞀週間前に珟れたした。



-CoreCLRストヌリヌから私の気持ちを聞いおみるず、「カオス」ずいう蚀葉が思い浮かびたす。 同僚ずのあなたの気持ちは䜕ですか



-もちろん、郚分的には、.NETに関連しおむンフラストラクチャで倚くのこずが行われ、倉化しおいるため、私たちはあなたに同意したす。 しかし、これで十分だず思いたす。 .NETはそのようなプラットフォヌムであり、Windows゚コシステムのフレヌムワヌク内で長幎にわたっお生き続けおきたため、Microsoftは突然戊略を完党に倉曎し、クロスプラットフォヌム、オヌプン゜ヌスなどに向かった。



そしお、これが1日で完了しないこずは明らかです。これは膚倧な量の䜜業です。 同じCoreCLRを䜜成し、クロスプラットフォヌムにし、すべおが携垯電話などで機胜するようにしたす。 みんながこれをできるだけ早くやりたいず思っおいるこずは明らかであり、もちろん、間違いを犯し、それを認識し、ロヌルバックし、䜕かを倉えなければならないこずは明らかです...



-人が.NETで曞いお、今日1぀のこずを聞き、明日別のこずを聞いお、すべおを䜕床もやり盎さなければならなくお、「曞き盎すためにここにあたり時間をかけないで、別のプラットフォヌムに行きたす」



-それはすべお、たさにあなたが開発しおいるものに䟝存したす。 か぀お持っおいたプラットフォヌムWindows甚の完党なフレヌムワヌクで開発しおいる堎合、そのような問題は発生したせん。 あなたは以前のすべおの問題を抱えおいたす。



たた、CoreCLRでの開発を開始する堎合は、タむトルの「プレビュヌ」ずいう蚀葉が譊告を発し、次に䜕が起こるかを準備する必芁がありたす。



マむクロ゜フトは珟圚、コミュニティに耳を傟けるのに非垞に積極的であるため、最先端、最新の技術に座っお、圌らの開発に圱響を䞎えようずしおいる人々がいたす新しいサブセットの䜕かが気に入らなければ、今は圌らにフィヌドバックを曞く時です そしお他の人々は、これらすべおが安定するのを埅っおいたす。



-あなたは非垞に興味深いトピックに觊れたした-それはクロスプラットフォヌムでもあり、オヌプン゜ヌスでもありたす。 これら2぀の倧きなブロックに぀いお話したしょう。 Linuxに぀いおは、これに぀いお觊れたした。.NETずLinuxはしばらくの間䞀緒にされおきたした。 この間に良くなったでしょうか



-はい たず第䞀に... LinuxずMacで実行できる2぀のランタむムがありたす-これらはMonoずCoreCLRです。 それらは異なり、それぞれが興味深いものであり、特別な泚意に倀したす。



Monoは、2000幎代初頭から開発されたプロゞェクトであり、より安定しおいるほど、たすたす深刻なランタむムず芋なすこずができたす。 5幎から10幎前にモノに翻蚳しようずした人が苊しんだら、今は...今、私たちももちろん少し苊しんでいたす。 しかし、ReSharperでは、数癟のプロゞェクトがあり、わずかなきしみはあるものの、2000幎代の初めから曞かれた数癟䞇のレガシヌコヌド行が起動し、Monoで正垞に動䜜したす。 ぀たり、開発が進行䞭であり、バグが修正されおおり、最近では非垞に迅速に修正されおいたす。



-あなたが顧客に芋おいるものから圌らはCoreCLRに向けお出発したすか



-今のずころ蚀うのは難しいです。 コミュニティはCoreCLRに非垞に興味があり、倚くの人々が開発を远いかけ、䜕かを詊み、詊みおいたす。 しかし、これはただプレビュヌであり、CoreCLRを介しおあらゆる皮類の゚ンタヌプラむズを行うには時期尚早です。



-ロズリンはどうですか 新しいスタゞオが登堎したしたが、コンパむラには䜕がありたすか



-ロズリンは開発䞭です。 C7は近日公開予定です。プレビュヌは、新しいStudioで既に利甚可胜です。 ロズリンはすべお順調です。



-Roslynに付属するC7-箱から出しおすぐに この間にロズリンは進歩しおいたすか



-はい。 バグを修正し、開発したす...叀いレガシヌコンパむラからRoslynに切り替えるこずで埗た最も重芁な機䌚は、蚀語をより簡単に開発できるようになったこずです。 蚀語の芳点から必芁な機胜ず、実装よりも正確にそれらを実装する方法にもっず集䞭できたす。 叀いコンパむラでは、新しい機胜を远加するこずは非垞に困難でしたが、Roslynを䜿甚するずはるかに簡単になりたした。



-ロズリンを自分のどこかにドラッグしお、それに぀いお䜕かしようずしたしたか



-たあ、どうですか。 コンパむラずしお䜿甚したす。 MSビルドの䞋で動䜜し、それを利甚しお新しいプロゞェクトがコンパむルされたす。 しかし、アナラむザヌや怜査に関しおは、ReSharperにはさらに倚くの機胜が実装されおいるため、それが提䟛するものは必芁ありたせん。 私は䜕回も、非垞にクヌルな怜査、よりむンテリゞェントに蚀うでしょう。 たた、Roslynは2ギガバむトのメモリを簡単に消費できたす。 この点で、ReSharperコヌドベヌスは、メモリを䜿甚しおさらに経枈的であり、キャッシュを積極的に䜿甚したす。 ぀たり、Roslynぞの移行による利益はなく、問題があるだけです。



-パフォヌマンスに぀いお話したしょう。 CoreCLR、Roslynは、Monoず埓来のレガシヌコンパむラを比范したした。 ぀たり、2぀のランタむムは、パフォヌマンスが異なりたす。 どう芋えたすか



-蚀うのは間違いなく非垞に難しい...最近、新しいRyuJIT JITコンパむラがありたす。 珟圚、完党なフレヌムワヌクずCoreCLRの䞡方で、64ビットバヌゞョンのみが䜿甚可胜です。 たた、CoreCLR 1.2.0では、x86バヌゞョンも玄束されおいたす。



RyuJITは非垞に興味深いプロゞェクトです。 䞀方で、叀いJITは開発が難しく、倚くの問題を抱えおおり、2.0などの.NETの叀いバヌゞョンに察する倚くのハックを抱えおいたため、圌らがそれを始めたのは良いこずです。 しかし、ひどく刀明したのは、たずえば、RyuJITがパフォヌマンスのいく぀かの面で叀いレガシヌJITよりも劣っおいるこずです。 ぀たり、そこにいた人たちは、JITの速床が可胜な限り速いこずを匷調したした。 このため、いく぀かの適切な最適化は適甚されたせん。



しかし、良い面は、RyuJITが非垞に積極的に開発しおいるこずです。 githubで非垞に積極的に開発されおおり、たずえば、RyuJITがAVXおよびSSE呜什を操䜜するための優れた統合を実珟できるように、アヌキテクチャが改善されおいたす。 そしお最適化は進化しおいたす。 GitHub, «, , - , ». , .



— -?



— CoreCLR CoreFX. , «, ». — - , , , , , - , .



— , , , — , , — . .



— , , .NET , - 




— , , .



— , .



— Microsoft. , — GitHub, — ? .NET- — ?



— . Microsoft — GitHub. . , , , , - . issue GitHub, , issue Microsoft, 




— .



— ! , Microsoft. issue . , , , , .



. ASP.NET- Kestrel -10 - . . , 




— .NET- — nginx, Apache?



— — Java, C++, . Kestrel . , : Microsoft, Kestrel.



— ?



-はい。 ore Team , , - , .



Microsoft Open Source



Microsoft, , , , ?



-はい。 Microsoft - , , -. Microsoft , , , .



— ?



— , , Open Source, . , , Microsoft Linux Foundation.



— , : , ?



— , , - , , Linux . , , Azure




— «»! Microsoft. , , , Azure, , .



— , , , , , . , , Linux.



— business value.



— , Red Hat. Red Hat , .NET — Red Hat




— , : Microsoft Azure, . Linux ( , Windows, ). , Microsoft , Azure.



— , , .



— , ? Linux Open Source.



— . . Microsoft, , - . Apple Google. - .



— — . , Windows Phone .



— ? Windows Store . , . — .



— , .



— , . , Microsoft Xamarin Mobile Development C#.



— DotNext ( ) ( ), . DotNext , , Xamarin.Forms. , . , , , .



— , , . - DotNext -, , , , - , . Xamarin - , , .



C# — , Xamarin , Windows, Android, iOS. , . .



, Google Play App Store, native. , - « », , , , , , , C# — .



— ?



— - . , , - API, API. , . native API, UI, .



Rider, Xamarin, , .



— , , ?



— , « » — . , .



— , .NET ?



— .



— Xamarin ?



— , , , , , Rider 1.0 , .







BenchmarkDotNet



— , JetBrains: , , BenchmarkDotNet . ?



— , .NET Foundation, , .



— , BencmarkDotNet?



— , Roslyn, ColeCLR ( RyuJIT ), Entity Framework, Microsoft , , Cake , .NET. .



— , ?



— , : , . — - -, — .NET Foundation.



— ? , , Java: , , , . ?



— , . Kestrel, , BenchmarkDotNet . — , , 




— , Microsoft . , BenchmarkDotNet — , Microsoft. ?



— , , high performance. , . 20 , , - . BenchmarkDotNet - -, , -, , « ».



— , — , , .



— , , 
 . Java- JMH, , — JMH




— , , JMH, «A , B». .



— , , , , . - , . , N , - .



, - , . , , . , . - , , , , , .



— JMH?



-はい。



— BenchmarkDotNet ? , ?



— . -, , Java .NET , . Java . . Java , , .



— , Java JVM, , - , , . .NET CLR, CLR, Mono — , . JMH, , HotSpot, , . , .NET ?



— . , . , Mono, CoreCLR. , - -. .



, - Mono , , . これが最初の瞬間です。 — , , , , , . JMH — , , . . , , .



— BenchmarkDotNet , , JetBrains?



— — , , . — , , . , , , .



, . , Rider , , , - , , , . , , , .



— JMH, , , . , , , , , . - ?



-はい。 BenchmarkDotNet. , , , , .



— footprint?



— , . , memory traffic. , -JIT-, . .



— ? , — , . ?



— , . , .



— - ?



— . , , .



— DotNext ?



— , . DotNext , .



— , ?



— -.



— . — . , — . ?



— , , , . — , , , , .



, Intel , , , -, , AMD, ARM, Samsung— .



-はい。 , Intel, - 




— ?



— , Intel?



— , « , ». Microsoft, — . Intel?



— -, , Microsoft . Intel , , — 




— , , , Intel . Java , Intel : « intrinsic, , ...»



— .NET, , .



— , Intel Microsoft .



— . . , , , , .



native



— , . .NET, : . - ?



— . .



— ?



, . NGen, — , ahead of time-.



— ? . ? : GCC , 70 . internal representation .



— NGen , , , , , , profile-guided optimization : , - .



— , , , NGen', - ?



— , , , , . , JIT-. , , - , . 
 , - , .



— , . JIT- . footprint, , , .



— .



— , NGen, , ?



— .NET Native. , Windows-. , , .



.NET, , .NET Native, . , , .NET- native . , , LLVM. C++ , .NET C++, .



— C++?



— .



— managed?



— , . , , , , . Microsoft , , , , , - , - , .



— , Microsoft , , , . : - — ? ? Rider, « IDE, C#-, ». ?



— - , .NET-.



— , - . , , , - -, . . , : Rider?



— . , , , , , preview. , , . . , , .



, -, . , , .



— Microsoft. , Microsoft , . , Microsoft, MS-, . 15 , - . business value , .



-それは本圓です。 , — , . 2-4 — .



— : 2-3 , , Stack Overflow, Medium, . , Microsoft ? ?



— . , , Microsoft , .



— . ReSharper, - . Microsoft , . 1.1 1.0 , , 1.0. ?



— , , , , - . CoreCLR, . preview 2, preview 3. preview 2 , , , N , . , preview 3, 1.0. stable- .



- Rider, , . . C# , , - , . , , , , .










今週金曜日にモスクワで行われたDotNextカンファレンスで、アンドレむず話をするこずができたす。そこでは、.NETプラットフォヌムでの算術挔算の速床に぀いおプレれンテヌションを行いたす。



All Articles