C#だとそんなに重くなるもんなの? [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>1
MSIL(中間言語)で実行されるから、いわゆるマシン語(ネイティブ)よりかなり遅いw んで、理論上は遅いけど、マルチスレッド配分の効果で小さいプログラムであれば差異はないw ちなみに、C#はウィルス作成者が好むらしいから、基本的に使わない方がよいw 結論: C#を使うのであれば、似たようなJavaScriptを使うのが現実的w C#はawait/asyncの効果でネイティブよりも頻繁にマルチスレッド使うからどうでしょうね マルチスレッドにしやすいから体感ではC#のが速く感じるね C#が重いイメージの原因はだいたい起動時間の長さ
起動時にディスクから読む量が多くてHDD時代は遅かったが
SSDではもう全く問題にならない C/C++ネイティブに比べたら数段遅いのは当然
でもハイパフォーマンスが求められないUI主体のアプリならどうでもいい 中間言語で格納されてるけど、実行はネイティブコードになるんじゃなかったっけか?
起動はともかく、実行速度がそんなに遅い印象はないけど。 実行はネイティブコードだよ
起動はc++に比べれば遅いだろうけど、他では差を感じないな
業務システムなのにC#だとパフォーマンスが〜とか宣うのは単に新しい言語が使えない奴だと思って間違えない 中間コードでインタープリター実行?
ここはネタスレなのかw C++使えますなんて自分から言えたら大したものですよ。 いくらJITでネイティブコードに変換されるっていっても
例えば、配列の要素の和を計算するような処理だとC++の方が3倍は速いんだよな ネイティブコードに変換なんかしないよw
中間言語(MSIL)で動くだけw あー、答え言うの早いよ
もう少し泳がせてバカの知ったか見本市にしたかったのに あのさあ勤務先で使うソフトがc#で作ってるぽいんだけど画面でマウスのポインターを追いかける標準を合わせるようなマークが付いてくるんだけどこれ重くなるよね?? 照準のことを標準って書いて良いと思い込んでるものとしてエスパーすると
そのソフトの要件ではマウスポインタが照準形であるべきだったのに作った奴が
マウスポインタの形を変える方法を知らなかったからそうしちゃったとか?
いずれにせよ照準マークが不必要なら無駄に重くなるのは当然 >>27
処理が追加されてるからその分コンマ数秒でも重くなるのはそりゃ当然ちゃ当然なんだが
ちょっとそれがどれ程度重くなるのか
マウス追いかけるアニメーション作った経験者がもしいるなら聞きたい。とても重くなるのか体感しない程度なのか
図形を描画するソフト使ってて時たま何故かとても重いからもしかしてと思ってだな 勝手にカーソル制御するためにグローバルフック使ってんならWin32でDLL書いてんじゃね マウスポインタを追従するアニメーションを見る行為そのものが
体感的に遅延を感じさせる。気がする。 >>22
そういう意地悪をしちゃダメだよなw
VC#やるぐらいならJavaScriptやった方がマシだよw
…つーか、ウィルス作者認定されてるから使わないに越したことはないw VC++とインラインアセンブル使うのがいいよw
もっとも、アセンブラのできない奴用の流刑地がC言語だった訳で(笑) コテの中だと片山が一番マシだな
自信過剰で危ない人には変わりないが VSに紙のマニュアルが付いて来たら運ぶのに台車が必要なくらい重いだろうな。 >>31
JavaScriptなんてインタープリター実行で遅いしブラウザー互換も無い。
イマドキ、ブラウザーで実行をONにしてたら情弱と言われるぞw ゼロから言語を学び始めてアプリを作成して
アプリが動作を完了するまでの時間は
CとC#でどちらが速いですか? 初心者はJavaScriptが良いよ。
ブラウザーで簡単に動かせるしスクリプト言語なので言語が超簡単お手軽w コテハンのチンパンジーのアイちゃんはそれっぽいことを言うけど全く正しくないし、指摘されるとアハッwとかいってごまかせてると思ってるからかわいそすぎる
荒らしにしてもあまりにも手口が下手だし C#含めた.Net Frameworkは確かに遅いがWindows10MobileからストアでNativeバイナリ配布するようになってるからなかなか速くなるみたいよ
とは言ってもアセンブラにCがかなわないように所詮はラッパーである.Net FrameworkがCにかなうことはないけど
.Netのプログラム見るとコストも考えずよく変換処理かけてるけどCやってればありえないからな
手軽にフロントエンド作るにはいいけどフルで.Net使うのはあまり現実的じゃない 現実ってw
たぶん君が使ってるアプリの半分くらいはバックエンドがC#より遥かに遅いスクリプトで書かれてるよ? 言葉足りなかったわ
現実的じゃないのは業務レベルでの場合
規模小さくて要求を満たせればいいけどフルでやって要件速度満たせなくてよく尻拭いしてるからな
それで飯食ってる部分はあるからありがたいといえばありがたいんだがなw 要件速度満たせなくてよく尻拭いって たとえばどんなの? 実際のところ俺が作るレベルのアプリならC++より速度が遅くて困ることはないなぁ
所詮16ミリセカンド以内に処理が終わればいいし 業務アプリでC#が遅いからCに書き直してんの?
その>>50のオナニーか無知の産物を尻拭いさせられる奴はたまったもんじゃないなw >>51
例えば10万件のデータ一覧を1秒以内に表示する要件速度で15秒もかかってるのを1秒以内に収める そんな無意味な用件ってあるの?
ファイル出力とかならともかく10万件表示とか。 >>54
それIOと描画の問題じゃね?
言語変える前にやるべきことはいくらでもありそう >>54
たとえばじゃなくて、あなたが尻拭いした実例を この場合だとデータ生成までC++で処理してあとはそのデータをC#で表示に変更した
C#の表示もおかしいところがあったから直したけど 俺的には10万件って全然たいしたことない気がする
そんなの16ミリセカンド以内でも普通にいける。 >>59
10万件表示したものを何にどう使うのさ? >>55
業種によってかなり変わると思うけど10万程度は別におかしいレベルじゃないよ
1日数千万件や億超えもあるようだし
逆に1000件程度のデータしか使わないならC#だけでもいいと思う
要は要件に合わせていろいろ使い分けが必要ということ >>61
基本はフィルターかけるからそんなに出すことはない
全表示が速ければフィルターかけたらさらに速いとイコールだということ
この性能は満たさないと金は払わんというお客さんの警告だよw 表示ってのがオカシイだけで内部的なデータ作成だったら10万件1秒とか
インタプリタでもどうにかなるレベル 起動は仕組み的にどうしても時間掛かるけど実行速度でそんな差がつくとは思えん
言語じゃなくて書き方の問題だろ VC++ & DarkGDK & マルチスレッドの時代。(アハ C++がC#より優れてるのは実は速度より移植性の高さ
.Netがようやくマルチプラットフォームに乗り出したけどC++で書けば必然的にマルチプラットフォーム対応になる
スマホやタブレットへの要望もある今は特に重宝する
C#はとっつきやすいから好きだけどUnityがそうであるようにまだまだC++におんぶなんだよな C++で書けば必然的にマルチプラットフォーム対応に。。。なんねーよ >>68
ネタスレだよ。
マジレスしてるように見えて小さな釣り針が隠されているレスばかりw >>73
昔はWindowsアプリだけでよかった
それがウェブに取って代わられた
今はスマホのネイティブアプリが必要になった
多様なプラットフォームに対応できるC++が基盤になるのは必然と言ってもいい
とは言え扱いにくいのは間違いなくUnityのようなアプローチがいいとは思っている UnityはC++でプラットフォーム別にエンジンを実装してるだろう
プラットフォームに依存しない上位のロジックを共通化するという考え方はあるが、
Unityではその上位のロジックというのがまさに「C#」に相当するわけで
C++のクロスプラットフォーム性を示す例としては極めて不適切 これから勉強予定だから詳しくないがUnityは中間コードをC++に変換して各コンパイラでコンパイルすると思ってたんだが違ったか?
まあ言いたいことはC++をコンパイルできない環境がないほど移植性が高いのには違いない C++はプラットフォーム依存が激しく生産性も低いので、C#という抽象化レイヤを設け
それを各プラットフォーム用に変換することでクロスプラットフォームにしている 今 Windows アプリでネイティブコードにするメリットってなんかあるかな?
むしろ VC は CLI のためだけにあるような気がしてる。 >>85
プロセッサの性能を最大限に引き出す必要がある部分についてはネイティブなC/C++を使用する以外の選択肢がない >>85
俺は計算スピードが要求される部分のみC++でdll作って、ガワはC#とかF#ってことが多い C++の出番がまた減った
GPU Computing on .NET at Speed of CUDA C++
http://blog.quantalea.com/?p=9871 >>88
へえ面白そうだな試してみるよ
それはそうと、C#から使えるSIMD使った行列・ベクトル演算ライブラリ知らない?
AVX2とかAVX512とかを自動で切り替えてくれるやつがいいんだけど >>87
呼び出し方法はどうやっているん?
あるいはデータ受け渡しや結果の取得は? 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
「 気づいたら、C# が C++ の速度を凌駕している!
ttp://espresso3389.hatenablog.com/entry/2016/05/02/081308 すみません。Moq について質問です。
インタフェースをMock化した時とか、Setupしていないメソッドやパラメータが呼ばれた時に例外を吐くように設定したいのです。
入り組んでいて、何が呼ばれるのか追いかけるのに疲れました。
例外を吐いてくれれば、Setupしなくちゃと分かるので、デフォルトで例外を吐くような機能があるんじゃないか?
と、ググろうとして・・・思いつきませんでした。
どうすれば良いでしょうか?
・・・とか書いていたら、自己解決してしまいました。
https://github.com/Moq/moq4/wiki/Quickstart#customizing-mock-behavior
に
var mock = new Mock<IFoo>(MockBehavior.Strict);
としろと。 Point[] points = new Point[1000000];
int minX, maxX, minY, maxY;
minX = points.Min(p => p.X);
maxX = points.Max(p => p.X);
minY = points.Min(p => p.Y);
maxY = points.Max(p => p.Y); 俺が、これは便利かもと思って触った時には実用にはとても耐えない遅さだった
VSもよし、無料のIDEもあるから取っ付きやすかろうが、時間の掛かる処理は
.Net以外のコードに任せる形が良いのではないのかなー?今のCPUのなら使えるのかな?
ネイティブコード出力で解決しているのだろうか? 軽いことしかしてないから重いと思わないだけで重いことしたら簡単に破綻する 破綻するねぇw
Xamarin.FormsなどのスマホUIフレームワークからサーバーフレームワークまでいろんなものがC#で書かれてるけど世界破綻しすぎて大変だな .NET って、もともと実行はネイティブコードなんだけど。
遅い遅い言ってる奴は設計が悪いだけなんじゃないの? 確かに最初のバージョンとか2002辺りは、それ以前のVBと比べてもモッサリしていたのは事実だな
それが何時解消されたのか、パソコンが早くなっただけなのかはよく分かっていませんが
最新版のUWPは、ライブラリがネイティブ化されたせいなのか格段に早いですね >>106
こういうアホはどういうコード吐くか絶対に見てない、理解できない。
Javaの失敗見てもAndroidのArm依存見ても、見えてない、理解できない。
そもそも機械語レベルの知識がないから。 CPUによっては、ウィンドウが生成される瞬間がぎこちないから、おそいとおもう
Javaもひどい C#のダイアログは、とじたらきえてしまうんだろ? 毎回生成するのがぎこちない。こまります そりゃ
WTLは速い!
MFCもなんだかんだで速くなった!!
という人達から見れば遅いんだわな。
自分はWPFとかでもそんなに気にはならんけどね。
ただ、WTLで作った過去のアプリケーション起動すると速いってか軽すぎて笑いがでる。 仮想環境がメインで動かすからWPFとか遅すぎてダメだわ。GPU前提のアプリは劇遅。 >>104
その理屈なら、Javaはとっくに破綻していなければおかしいだろ Javaが出てから10年間も遅すぎて使い物にならなかったよ。
結局最初の理念は高速化のためにすべて捨てたのが今のJava。 >>115
そういう言い訳はやめろよ。破綻したかしてないかだろ。 C#で破綻するとか言ってるなら、C++の1.5倍以上遅い例あげてくれ。破綻っていうぐらいなら3倍は遅い例を出して欲しいけど。
マイクロベンチじゃなくてある程度の規模の比較でよろしく 配列一回だけアクセスしてみ。つまりシミュ系用途は全滅。使いものにならない。 実行ファイル形式にしたら速いよ?
実行環境 win7,10,linux問わず CPUに依存するから
速い遅いは関係ないと思ってる
30万のPCなら、だいたい動くだろ?
中古で良いなら10万ぐらいで十分か…… >>118
だから計測してどんだけ違ったのか書けよ C# で 16K (16,384) サンプルの振動データ 24 ch を FFT するのに 300ms ぐらい。
CPU は i5 2GHz ぐらい。
計算をもうちょっと真面目にスレッド化すれば、もうちょっと速くなるかも。 >>120
その程度も自分でできないとかアホの子なの? ボクはキミの奴隷じゃないんだよ? お前が遅い遅い言ってるから証拠だせっつってんだよw
あれか。お前は民進党か。 >C#だとそんなに重くなるもんなの?
そんなにってどんなに? 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
NA4E6 Javaとだいたい同じ速度だし、Javaより起動が速いし何が問題なん? 非局所性データに対してunsafeが機能しないから困ってるのに
それでどうやって解決するのか教えてほしい。 ゆとりはアセンブラ知らないからなぜ遅いかなんて理解できない ■ このスレッドは過去ログ倉庫に格納されています