- 1 名前:デフォルトの名無しさん [2017/03/25(土) 19:01:22.21 ID:bnfyNgvn.net]
- 質問する前にGoogleで検索しましょう。 www.google.com/
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。 ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。 Javascript は Web 制作板、CGI は Web プログラミング板へ。 業界談義、愚痴はプログラマ板へどうぞ。 ゲーム関係の話題はゲーム製作板へどうぞ。 ネタ、板とは関係の無い話題はご遠慮ください。 前スレ スレ立てるまでもない質問はここで 146匹目 echo.2ch.net/test/read.cgi/tech/1487780317/
- 910 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 10:03:39.77ID:DM2pkhyK.net]
- そんな力技だったのかw
てっきりGCをアプリやOSの代わりに強制的に行うソフトだと思っていたわ
- 911 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 10:08:56.48ID:fDsf7qWs.net]
- OSに保護されてる別アプリのメモリをどうやって解放しろと。
それが出来たらウィルス作り放題だわ。
- 912 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 10:15:41.36ID:01kZhcWn.net]
- スマップなら解散したよね
- 913 名前:885 mailto:sage [2017/05/21(日) 11:15:36.77ID:VISjd5sh.net]
- >>886-
ありがとうございます。 変えちゃいけないというわけではにと聞き疑問が解決しました。 定数変数の感性を引き続き鍛えることにします。
- 914 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 12:05:15.69ID:fDsf7qWs.net]
- >>897
多分普通のアプリなら>>888のやり方のが良いけど、ゲームだったらユーザーが勝手に設定書き換えてチート行為出来ない様にセーブデータとかはバイナリファイルにした方がいい。 フルスクリーンかウィンドウかみたいなゲームそのものの設定は設定ファイルで良いと思うけど。
- 915 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 12:09:49.56ID:KYYeGok8.net]
- >>884
> 確かメモリクリーナーってアプリはメモリ圧迫してOSのメモリ断片化解消機能を意図的に呼び出すアプリなんだけど、そう言う意味じゃ大量にメモリ喰う時点で断片化はOSが解消してくれんじゃね? ディスクと同じで断片化を解消するにはメモリ内のデータを移動しなきゃいけないが、 ポインタ(メモリ座標の生の値)を使う言語ではデータの移動はできない。 参照を使う言語であれば、可能かもしれないが(ただしOSの仕事ではない) またディスクは断片化していても、遅くなるだけでファイルを作成することはできるが メモリの場合は、断片化によってうまれて小さな空き領域に 大きなデータを作ることはできない。 何度もメモリの確保と解放を繰り返す処理を行うと、使えない小さな空き領域が たくさん作られていくことになる。
- 916 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 12:19:30.21ID:fDsf7qWs.net]
- >>899
>>893 まあなんだ。 断片化して来たら意図的にメモリ大量確保でスワップファイルに吐き出させて再配置させりゃあ良いってわけだな。
- 917 名前: mailto:sage [2017/05/21(日) 12:43:21.75ID:pUWFtSb1.net]
- でもユーザー空間での断片化はどうしようもないだろう?
ユーザーメモリ空間が有限である以上,断片化を解消する手段はないとおもうよ,32bit 空間ならば断片化でアウトとなる可能性は十分にあるのでは?
- 918 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 13:18:10.58ID:2TTm6ATP.net]
- んなのOSがスワップファイルから書き戻す時にどう再配置するかだな。
アプリのアドレスを順に詰めてくのに中身のアドレスも詰めていかない理由もないんだが。。。 こればっかりはな。 そうでなけりゃ自前で再配置するかってーとそんなバッドノウハウの本に出会った事ない。 大量にメモリ喰うアプリがある以上、そう言う本があってもおかしくないんだが。
- 919 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 13:19:57.96ID:9HtUCvpi.net]
- >>899
これは俺の頭が腐ってるのか ・OSがOS上で動作するプログラムに提供するメモリと、本当に物理的な物理メモリと、それぞれの中身は必ずしも同一でない、 だからswapなんてものが存在・機能しうるし、だから上で語られている「メモリクリーナー」は一応機能しうる、と思うのだが ・その言語を使ってプログラマが書くコードについてではなく、実際の動作について、ポインタ使わない言語ってあるのか
- 920 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 13:29:44.51ID:2TTm6ATP.net]
- >>903
大丈夫。腐ってない。 >>899がシッタカ押し通そうとして自爆しただけだ。
- 921 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 13:35:24.26ID:KYYeGok8.net]
- >>904
自爆してるのはお前だばーかw 俺はメモリクリーナーの話をしていない >>903はポインタを間違えただけだろうが それに気づかないお前ばマヌケだば〜かw
- 922 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 13:38:40.13ID:KYYeGok8.net]
- >>903
> これは俺の頭が腐ってるのか そうそうお前の頭が腐ってる 物理的な配置の話は関係ない。 物理的な配置が変わった所で論理的な配置は同一だ。 それはスワップした所で変わらない 論理的な配置が断片化しているのを 物理的な配置を変えた所で何も改善できない。
- 923 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 13:40:19.48ID:2TTm6ATP.net]
- >>905
はあ。。。 あのな? メモリークリーナーで再配置して動作が一時的とは言え改善するんだろ? アプリのガワだけ再配置しても中身が断片化してたら遅いままだわな? おk?
- 924 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:00:39.90ID:KYYeGok8.net]
- >>907
> メモリークリーナーで再配置して動作が一時的とは言え改善するんだろ? それは再配置したから改善したのではない。 単に「使用頻度の低いメモリを今すぐスワップファイルに押し出す」を実行しただけだ 「メモリをディスクに追い出しています。しばらくお待ちください。」と 今(実行したタイミング)で時間をかければ 後から(足りなくなった時点)で追い出す時間がなくなるってだけの話。 ディスクに追い出す処理を、今やるか後でやるかの違い。 それがメモリクリーナーの仕組み そして本当に使用頻度の低いメモリであれば効果はあるだろうが 実際のメモリクリーナーは使用頻度を見ていない。 メモリクリーナー以外のプロセスのメモリを追い出しているだけ。 必要なメモリも追い出すから「必要なメモリをディスクから読み取ってます」が 後から発生するので意味が無いと言われてる。
- 925 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:07:14.39ID:9HtUCvpi.net]
- >>906
875,878,880と来てたからOS管理の物理メモリ領域を考えてるのかと思っていた それで>>884はOS管理のメモリ全体の話として「メモリクリーナー」出したんだろうと認識していた しかしそうすると>>899がわけわからなかったので903を書いたところ、 906はプロセスが見てる仮想アドレスのほうだけ考えろという しかしそうすると>>875がわからん 現実にOSには返却されなくてもmalloc/free叩いてるプロセスから見たらしっかり解放されてんじゃね?と思うのだが さらにいえば、それはつまりプログラマ側が考えてメモリ確保/解放しろよという話であり、 (851のケースだと処理をある程度細切れにしたうえで、繰り返し動的に使うメモリ領域のサイズを固定にするとか) GCのある言語とないcのような言語とを比べる文脈で意味のある内容でもない という気がするんだが あとポインタ使わない言語の件もさっぱりわからん
- 926 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:19:31.56ID:hH55+ewD.net]
- >>908
語るに落ちたな。 >そして本当に使用頻度の低いメモリであれば効果はあるだろうが >実際のメモリクリーナーは使用頻度を見ていない。 >メモリクリーナー以外のプロセスのメモリを追い出しているだけ。 > >必要なメモリも追い出すから「必要なメモリをディスクから読み取ってます」が >後から発生するので意味が無いと言われてる。 その通りだ。 使用頻度無視というか、メモリークリーナーが最大使用頻度になる事で他の使用中のアプリまでスワップファイルに追い出すんだよ。 だから、おまいの言う動作が改善してるのはまだ使用頻度低いメモリが書き戻されてないからじゃあない。 全部スワップファイルに行ってるんだからな。 むしろ、お前さんの言ってる書き戻す最中はまだ書き戻ってないHDD上のスワップファイルにアクセスする頻度が多いからクソ遅い
- 927 名前:。
(使ったことあるなら経験あるだろ?) 全部書き戻ってから快適動作するけど、また時間が経てば断片化する。 一時的って言ってもそれなりに持続性はあるんよ。 [] - [ここ壊れてます]
- 928 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:27:24.18ID:hH55+ewD.net]
- >>909
おいらも分からん。 それじゃGC無い言語がゲームに向いてる説明にもならん。 仮にfreeして直ぐじゃなかったとしても、OSが解放おk出した時点で解放されるのに対してGCな言語は「まだだ!!まだ行ける」って離さない場合があるとかぐらいかね〜? まあ、断片化防ぐのにfreeを遅らせるとかは間違っちゃ。。。ん? メモリ確保した時点で断片化進んでるじゃんよ。 解放しても同じ場所が開くだけだからタイミング関係ねーわ。
- 929 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:27:39.54ID:9HtUCvpi.net]
- >>910
横からすまんけど >また時間が経てば断片化する。 この「断片化」ってOS管轄側のメモリであって、プロセスから見えてる仮想アドレス領域じゃないよな じゃないと筋が通らないし で、このOS側のメモリ断片化が、実際の(体感)性能にどんくらい影響与えるのか確認したURLとかもし知ってたら教えてくれんか
- 930 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:32:53.09ID:KYYeGok8.net]
- >>910
> 語るに落ちたな。 ↓ > その通りだ。 笑うところ? あってるじゃんwww
- 931 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:34:03.47ID:hH55+ewD.net]
- 結論としては構造体の中身の配置に気を付けて、隙間のある構造体を避ける。
リストより配列をなるべく利用して連続したメモリ確保を意識して、解放した時マダラ模様ができないように気を使う。 プログラマー側がメモリの断片化に対して出来ることってこのくらいじゃね?
- 932 名前: mailto:sage [2017/05/21(日) 15:34:34.31ID:pUWFtSb1.net]
- >>909
物理アドレスの断片化はOS/CPU のページングで解消できるが,論理アドレスの断片化はどうしようもない たしかに,プログラマ側からfreeされた領域を,うまくやりくりして断片化を少なくするのは,ライブラリのmalloc/freeの書きようによるが, 今,すでに断片化してしまった論理アドレス空間を連続化するのは,すでに断片化させてしまった以上ライブラリでは対処できそうにないし,OS側でも当然できない ポインタを使わない言語でのGC装備は断片化に対抗できるが,万能ではない,そもそもGCは余分な仕事をしているわけだし,私にはマーク&スウィープと比べて劇的によくなるアルゴリズムがあるとは思えない(これは主観) GCする他に変数の再配置もやるのか?なんだかメモリ管理だけでビジネスロジックを圧迫しそうな勢いじゃないか‥
- 933 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:35:31.07ID:hH55+ewD.net]
- >>913
抜粋したトコだけな。
- 934 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:40:57.93ID:KYYeGok8.net]
- >>912
hH55+ewDが言ってるのがOS管轄側のメモリ。 俺はそのOS管轄側のメモリ=物理メモリが断片化するという話はしてない。 物理メモリはいくら断片化しようが何の影響も与えない。 俺が話してるのはプロセスから見えてる仮想アドレス領域 malloc/freeを繰り返すと、その仮想アドレス領域は断片化する。 ただし断片化するから遅くなるという話はしていない。 断片化するから小さい空きメモリができまくるという話をしてる その小さい空きメモリは、OSからドカンと割り当ててもらった ある程度のサイズのメモリ領域に埋もれているので、 そのメモリはfreeしてもOSに返されることはない。 ドカンと割り当ててもらったサイズ単位で管理されているから。 mallocしするたびに数十バイトとちまちまとメモリをOSから もらってるわけじゃないということを分かってないのだろう
- 935 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:46:04.28ID:KYYeGok8.net]
- >>915
> ポインタを使わない言語でのGC装備は断片化に対抗できるが,万能ではない, > そもそもGCは余分な仕事をしているわけだし,私にはマーク&スウィープと比べて劇的によくなるアルゴリズムがあるとは思えない(これは主観) > GCする他に変数の再配置もやるのか?なんだかメモリ管理だけでビジネスロジックを圧迫しそうな勢いじゃないか‥ 君には基本的なソフトウェアの進化っていうのを教えてあげよう 「人間が楽をするために、コンピュータに仕事を押し付ける」だ コンピュータの仕事が増える? それこそがソフトウェアの正常な進化なんだが
- 936 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:47:09.75ID:hH55+ewD.net]
- >>912
んとな。 両方だよ。 OSはOSで複数のアプリをメモリに配置する。 確かページ単位とか言うので複数アプリの使用頻度高い所だけ置いてる。 どっちかつーとOSのは断片化し難い。 してもスワップファイルに追い出すだけだし。 勿体無いスペース出来て多目にスワップファイルに書き込まれるくらい? アプリがスワップファイルにアクセスする頻度上がって遅くなるだけ。 んで、アプリはアプリでメモリの確保と解放繰り返してたら断片化する。 大量にメモリ使って新しく置く隙間がなくなって、酷い場合はそれ以上確保できなくなる。 異常終了する。 普通そこまでメモリ使わないから意識することないだろうけど。 メモリリークはこのメモリ確保出来なくなって異常終了ってパターン。
- 937 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:49:29.50ID:9HtUCvpi.net]
- mallocが現実にどんなコードになってるかとか各種GC実装の中身とか
全然知らない俺が書いてるのはおこがましいかもしれないが >>917 >物理メモリはいくら断片化しようが何の影響も与えない これ詳しく頼む それと、一番大事なとこで、>>851のような 大きいデータを読んで大きいデータを生成しては破棄する処理を繰り返し行う場合、 GCのある言語を使うか、GCない言語を使うか、ってところはどう考えてるかスパッと聞きたい
- 938 名前: mailto:sage [2017/05/21(日) 15:50:12.50ID:pUWFtSb1.net]
- >>918
せいぜい first-fit-strategy を best-fit-strategy にするくらいでイイ線いってるとおもってる GC の威力は感じているよ,メソッドチェーンな書きようは C++ では考えられない でも,論理アドレスの断片化は,メモリ空間の拡大で解消するのがベスト,言語系でどうこうするのはどうかな?って感想なんだ‥
- 939 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:55:23.38ID:KYYeGok8.net]
- >>920
物理メモリはいくら断片化しようが CPU(ハードウェア)が備えるメモリ再配置機能によって 常に断片化してないように見せることが可能だから ハードウェアが備える強力な特殊能力よw
- 940 名前: mailto:sage [2017/05/21(日) 15:58:57.81ID:pUWFtSb1.net]
- >>920
物理メモリの断片化はCPUの機能であるページングで解消できるよ でもね,スラッシングを起こすようでは,そもそもそれは物理メモリが足りないんだと思うよ,メモリクリーナーは理屈は分かるがネーミング自体がうそ臭いね‥ 大きなデータを使うこととGCとは相関はないと思うよ,GCは余分なことをしている,という感覚は大事だね C/C++ で延命できる気は最近はしなくなってしまった,すっごくシビアなことをしているのでもないかぎりC/C++にこだわるのはどうかな? なんにつけ,とにもかくにも,障害の解消には物理メモリを増やすのが一番手っ取り早いと思うね‥
- 941 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 16:07:45.17ID:hH55+ewD.net]
- >>920
単に大きいファイル扱うならバッファ用意(メモリ確保)して、ファイルからバッファ分だけ読んで処理して書き出す。をファイルの中身全部読むまで繰り返す。 全部書き出したらメモリ解放。 C/C++でのメモリ確保と解放はゲームみたいに「このタイミングで止まると困る」ってのじゃ無ければ気にすることはない。
- 942 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 16:08:56.88ID:hH55+ewD.net]
- 気にすることはないってのは別にGCな言語でも良いってことね。
- 943 名前: mailto:sage [2017/05/21(日) 16:10:01.48ID:pUWFtSb1.net]
- ま,そういうことだろうね
- 944 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 16:12:35.19ID:KYYeGok8.net]
- なお、GCがなくてもメモリがスワップアウトすれば止まります
- 945 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 16:28:44.26ID:9HtUCvpi.net]
- >>922-923
すまん混乱してきた まずもってCPU(MMUというかTLBというか?)が物理/仮想のメモリアドレス変換を高速にやってるのは知らんかった しかし、するとこれはハード的な物理メモリと、OSが見てる物理メモリ(ハードからは仮想)と、OS上の各種プログラムが見てるメモリ(OSからは仮想)と、 3層構造になってるという認識で良いのか?(正しくは知覚してないだけだろうけど、ある意味GC言語だと4層) んでもう一つ、OS<->OS上のプログラム間ではやはり断片化は問題になったりしないのか? プロセスごとに空間作って提供してるんだし、swapファイル/領域持ってたりするんだから、OS側も対応表持ってるよねこれ そうなるとOSが見てるメモリについても断片化すると影響皆無とはならない気がするんだけども GC有無と大量データ処理は関係なくねとか ハード成長してんだからプログラマがガリッガリに管理しない方向のほうが良くねとか、については理解できる 個人的にはどうしてもそっちで考えちゃうが
- 946 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 16:52:53.58ID:hH55+ewD.net]
- >>928
>>919も見て欲しいな。。。 OSもプログラムである以上、バグが全く無いわけじゃ無い。 >しかし、するとこれはハード的な物理メモリと、OSが見てる物理メモリ(ハードからは仮想)と、OS上の各種プログラムが見てるメモリ(OSからは仮想)と、 >3層構造になってるという認識で良いのか?(正しくは知覚してないだけだろうけど、ある意味GC言語だと4層) > >んでもう一つ、OS<->OS上のプログラム間ではやはり断片化は問題になったりしないのか? >プロセスごとに空間作って提供してるんだし、swapファイル/領域持ってたりするんだから、OS側も対応表持ってるよねこれ >そうなるとOSが見てるメモリについても断片化すると影響皆無とはならない気がするんだけども > 32bitOSに4GB積んでも3.5GBしか認識しないとかあったっしょ? あれは、OSは4GBまでしかメモリ扱えなくて、下位メモリをデバイスドライバとかiGPUのメモリに割り当ててるから、物理メモリにマッピング出来ないんよ。 3層構造って考えで合ってる。 ハードは物理メモリ。 OSは論理メモリ。 アプリは仮想メモリ。 GC言語は4層じゃなくて仮想メモリの解放を自動化してるだけ。 独自にアドレス持ってる訳じゃない。
- 947 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 15:11:59.91ID:I0Kgi1YL.net]
- このご時勢でWindowsアプリでメモリ断片化なんて本当に問題になるのか。
組み込みじゃあるまいし理解できん。これを理由にGC推しも理解できん。 性能最優先で最善を尽くしたいならc/c++一択、開発効率優先ならC#でもJAVAでも好きにしろ、で終わる話だろ。
- 948 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 16:09:46.85ID:3W7nNBo7.net]
- 速度を出すならアセンブリだ!
- 949 名前: mailto:sage [2017/05/22(月) 20:05:48.43ID:Zgh5eQVH.net]
- >>930
GC 推しなのは,メモリが逼迫する状況ではどっちでも手の打ち様がなく一緒だから
- 950 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 21:37:24.11ID:6t8os15O.net]
- >>930
- 951 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 21:38:09.23ID:6t8os15O.net]
- GC推しする理由は、開発効率以外にないと思うけど?
- 952 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 21:59:03.83ID:g3oHLvAy.net]
- 開発効率って言っても両方使えるなら対して変わらんけどな
- 953 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 22:11:51.19ID:6t8os15O.net]
- GCない言語で今使われてるのって
C/C++ぐらいでしょ? GCの有無とは関係なく、言語とそのライブラリで 開発効率が随分と違うんだが
- 954 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 22:13:23.96ID:6t8os15O.net]
- GCの有無とは関係なくじゃなくて
GCの有無以前にと言うべきか GCの有無でも開発効率は変わるが、 C/C++はそれ以前に言語レベルで開発効率が悪いわけで 対して変わらないという答えになるはずがない
- 955 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 22:30:16.02ID:O7KSblrp.net]
- CやC++にはboehm-gcがあるがそれで開発効率が良くなるかは疑問だ
- 956 名前:デフォルトの名無しさん [2017/05/22(月) 22:36:03.33ID:FIg1n5Bp.net]
- 性能もC/C++とJava等で大して変わらないという答えになるはずがないな
- 957 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 01:32:32.30ID:VKoAE6j/.net]
- swift「わいもgcなんぞたよらんでぇ」
- 958 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 02:02:49.10ID:OrYmr6qc.net]
- >>940
それな。 GCは備えていないがswiftみたいに明示的に解放する 必要はない言語はなんて言えば良いんだろう
- 959 名前: mailto:sage [2017/05/23(火) 12:28:14.96ID:F0rvxaiH.net]
- >>939
あくまで、論理アドレス断片化等のメモリ管理上の話だったかと
- 960 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 13:00:11.06ID:3W0XlzKr.net]
- >>939
気づいたら、C# が C++ の速度を凌駕している! espresso3389.hatenablog.com/entry/2016/05/02/081308 「C# が C++ の速度を凌駕している」らしいので、C++側を高速化してみた qiita.com/YSRKEN/items/8b53b1a783191503560c 書き方次第ではある。
- 961 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 13:06:49.02ID:3W0XlzKr.net]
- まあJavaはポインタ無いから、でかいクラスを参照渡し出来ないからC#より高速化の手段少ないんだけどね。
確か引数内でnewするとかの裏技的なことで参照渡してた記事を読んだ気はする。
- 962 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 13:08
]
- [ここ壊れてます]
- 963 名前::50.05ID:BC+HAMVa.net mailto: javascriptがC++より60%早くなった
を思い出した >>943 byteキャスト部分が無かったら… [] - [ここ壊れてます]
- 964 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 13:14:05.51ID:3W0XlzKr.net]
- C++どころかCよりも速いC#の記事を昔読んだんで、探してるんだけど見つからんかった。
もうちょい探すけど、最終的にはCがまた逆転してた。 何つーかGCの有無ってより、高速化の手段の有る無しやね。
- 965 名前:デフォルトの名無しさん [2017/05/23(火) 14:12:47.50ID:Y6ikkNJp.net]
- 速度と言語は関係なし。実装しだい。
Cコンパイラどうしでも差がある。
- 966 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 14:15:56.51ID:IWbgSxPp.net]
- まあ、プログラムの速さを気にするやつの99%はヘボいコードしか書けないと言う調査結果が有るよね。
- 967 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 14:36:30.36ID:ufwaINxg.net]
- プログラムの速さを気にしない奴の99.9%はヘボいコードしか書けないけどな
- 968 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 15:13:44.94ID:IWbgSxPp.net]
- まあ、この二つの命題から言える事は99.9%以上のプログラマはヘボいコードしか書けない
- 969 名前:デフォルトの名無しさん [2017/05/23(火) 15:57:02.69ID:Y6ikkNJp.net]
- C#はネイティブ化してなかったか LLVM使用で
それだとDOTNETとまだ別の速度だろ
- 970 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 16:08:46.78ID:UVgxThtR.net]
- 俺は残り0.1%にかけるぜ
- 971 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 18:04:57.28ID:7NMuNQp8.net]
- 書けると賭けるに掛けたのか
- 972 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 18:06:45.80ID:i5pqu4AL.net]
- つまり謙虚さが大事ってことだな
- 973 名前: mailto:sage [2017/05/23(火) 18:15:06.53ID:F0rvxaiH.net]
- >>951
いつも思うんだが、VM のメリットとして当時は何を想定していたの?
- 974 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 18:53:10.02ID:PJIONmxy.net]
- 横からだが、昔はVBとVC++で別々のライブラリだった。
ライブラリと言うか、VBはVC++で作られたコンポーネント利用するだけだった。 .netはVB、C#、F#、VC++/CLIだっけ?でライブラリを共通に使える。 .net Frameworkのもだし、それぞれの言語で自作したライブラリも。 今はストアにうpしたらストアで各プラットフォーム用にILをコンパイルしてネイティヴにするか、する予定。 もう完成したか追ってないけど、実験的に動かしてたのまでは追ってた。 理屈の上ではJavaのVMでも出来そうだけど、プラットフォームの違いを吸収するのが大変で現実的じゃ無い。 MSは自社プラットフォームに限定する事で現実的な選択をした。
- 975 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 19:30:40.25ID:Y2XmHkKh.net]
- 参照とポインタってどう違うんでしょうか?
参照もポインタもオブジェクトを指すのは同じではないでしょうか? 勉強してる内に目が回ってきてしまいました・・
- 976 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 19:36:05.86ID:wXnS6T2N.net]
- >>957
ポインタは計算で変えられる
- 977 名前: mailto:sage [2017/05/23(火) 19:41:04.25ID:F0rvxaiH.net]
- >>957
ポインタを抽象化したのが参照、ということでお茶を濁しておいていいんじゃないでしょうか… C++ ではポインタの参照とかできるので、いろいろ記述してみるといいかと
- 978 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 20:27:55.52ID:Y2XmHkKh.net]
- >>958
おーなるほど! 確かにそうですね >>959 ポインタのポインタのポインタとか、頭の体操以外に実際に使われることはあるのでしょうか?
- 979 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 20:29:08.73ID:nu8Noumz.net]
- >>960
多重配列とか書くと中身はそうなってる
- 980 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 20:47:05.49ID:Y2XmHkKh.net]
- >>961
なるほど、そういうふうになってるんですね ありがとうございます
- 981 名前:デフォルトの名無しさん [2017/05/23(火) 21:19:47.80ID:/AJUEF8B.net]
- ubuntuでシェルスクリプト最近良く使うんだけど
テキスト処理が弱いのでawkっていうの勉強してみようと思ってんだけど どうせawkやるくらいならこれ勉強したほうがいいてのある? 独断と偏見でいいけど理由も
- 982 名前:ナきればおしえてください。・ []
- [ここ壊れてます]
- 983 名前: mailto:sage [2017/05/23(火) 21:32:44.64ID:a7cn3COJ.net]
- >>963
awk なんか古すぎる,やめとけ,awk->perl->ruby の流れだから ruby がいいのでは?
- 984 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 21:47:24.07ID:KpOiakAM.net]
- >>960
多重に繰り返すのはたまにある。 C++が流行る前は、ポインタを返す関数のポインタの配列のポインタを返す関数なんてのもよくあった
- 985 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 21:49:18.70ID:UVgxThtR.net]
- >>963
perl、python、ruby使えるけどawkで済むときはawkで書くよ つまり無駄にはならない ただ複雑なことに当たったら無理にawkに拘らずに他の言語に手を伸ばした方がいいんじゃないかな 同様にsedもよく使う
- 986 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 21:53:11.09ID:IEg1DOoE.net]
- テキスト処理ならsedでいいやろ(原理主義)
- 987 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 22:04:05.60ID:uZSBUmLD.net]
- Perlをバリバリ書ける人は尊敬するわ
サーバーサイドスクリプトと言えばPerlだった時代に覚えようとしたけど頭が全く受けずに挫折したw RubyやPython、Luaとかは何とかなっているんだけどな
- 988 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 22:05:46.28ID:IEg1DOoE.net]
- Perlは表記がキモすぎるから無理
- 989 名前:デフォルトの名無しさん [2017/05/23(火) 22:46:29.59ID:/AJUEF8B.net]
- rubyとかperlとかよくきくし、用途もおおそう(なんとなく)だからそっち検討しようかな
https://donow.jp/gachinko/?p=906 ここよんだんだけどawkよりはRubyがいろいろできそうなのででRubyやってみるかなぁ プログラムは趣味だけどはばが広がりそう。
- 990 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 22:52:00.94ID:OxXI/az9.net]
- perlはワンライナーメインの本があれば是非読みたいんだけどな
- 991 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 23:29:47.16ID:ZEoEO5ey.net]
- 第1段階は、シェルスクリプト、awk, sed
これらの欠点は、データに型がない。 データを、テキストで受け渡すため、型チェックできないから、バグが多い 第2段階は、PowerShell 型がある。 データをオブジェクトとして扱うから、より安全 第3段階は、Ruby オブジェクト指向。 なおかつ、chef, vagrant のように、設定ファイルもRubyで書ける。 つまり設定ファイルに、データ + 処理、を書ける。 Androidでのビルド手順を書く、Groovy とほぼ同じ 「たのしいRuby 第5版、2016」が定番の本。 この本を3回読んでから「みんなのPython 第4版、2017」を読むと、 2つの言語を楽に学べる。 これら2冊は、表裏一体だから
- 992 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 23:46:38.52ID:uZSBUmLD.net]
- >>970
そういうのは大抵主観モリモリだが・・・RubyとPerlの学習難易度が同じって流石にそれはなくないか 実は両方とも触ったことがないんじゃないかと疑いたくなるレベル 自分の印象だと習得の難易度はRubyとPythonが同じくらいでPerlは1〜2段難しい感じ Python ・多くの用途で使用されている。組み込み用途でもよく使われる ・プログラマの違いによるコードの差が生じにくい ・ドキュメントの整備にも力を入れている(自分は見やすいと思えない) Ruby ・コード効率が良い。便利メソッドてんこ盛りの標準組み込みクラスライブラリのおかげで短いコードで書ける ・ドキュメントの整備は結構適当。深く掘り下げたような所は絶望的になくソースとにらめっこ(ただしよく使う所に関しては最低限のドキュメントはある) あとこれは今風の言語に共通する点だと思うけどオブジェクト指向的な書き方をして本領を
- 993 名前:ュ揮できるかと
もちろん手続き指向的な書き方でも使えるけど古い言語と比べた時のメリットは減るかも >>972 一番最後。宗教戦争は勃発しないの?w [] - [ここ壊れてます]
- 994 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 00:06:32.45ID:RPJTgULc.net]
- 漏れが考えた、言語を学ぶ順番
Ruby Python (PowerShell) 以後、2タイプに分かれる JavaScript (Groovy、Rubyとほぼ同じ) Java Kotlin = Scala + Groovy
- 995 名前:デフォルトの名無しさん [2017/05/24(水) 00:09:52.39ID:ik+M68Io.net]
- オレも考えた、言語を学ぶ順番
BASIC Visual BASIC Java Script Excel VBA Java Visual C#
- 996 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 00:13:15.66ID:NmLbt9VS.net]
- 私も考えた、言語を学ぶ順番
lisp Brainfuck ひまわり
- 997 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 00:29:53.66ID:m6dKMNyJ.net]
- 他の言語も使うつもりがあるならRubyは知らない方が良い気がしなくもない
なんで××が出来なんだよ!×沢山状態になるのは必至。と言うか自分がその状態 配列一つとってもメソッドの数が違いすぎるからな 他の言語で書かざるを得ない時は処理の中枢を棚上げしてその辺の穴埋めからになっちゃう
- 998 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 00:31:19.83ID:3SFEOf1O.net]
- じゃあ俺は
Haskell C Rust
- 999 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 00:32:41.83ID:61XHuyoM.net]
- Cから入るのが間違いない
- 1000 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 00:39:45.81ID:STDpCvAk.net]
- なるほどC, Nim, Limboですね
- 1001 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 00:59:32.66ID:sP70AvS3.net]
- Cから入ってあちこち彷徨った挙句にCに戻ってくるんだろ
- 1002 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 01:00:43.93ID:L9mU+g8W.net]
- Cのコードを生成すればいいという結論に至った人を何人か知っている
- 1003 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 01:04:16.20ID:sP70AvS3.net]
- ぶっちゃけバッチとあとWebならphpでも構わないが
phpはもはやWebに情報が多すぎて本が売れないからなあ(棒)
- 1004 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 01:38:06.70ID:3SFEOf1O.net]
- PHPとJavaScriptのオンラインマニュアルの完成度は異常
- 1005 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 01:53:24.63ID:/WrwABBj.net]
- javascriptが良い
ブラウザもバックエンドも使い捨てスクリプトも Windowsならofficeの自動化も これひとつで全部いける
- 1006 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 02:47:19.78ID:SSLM/4UF.net]
- >>970
なんでもできるのを求めてるならCがいいよ
- 1007 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 07:39:10.59ID:V1DJyb8e.net]
- >>972
素人プログラマで、最近PowerShellを勉強し始めたけど、第2段階のプログラミング言語とするには ちょっと難しいところがあると思った。 データをオブジェクトとして扱うのは、柔軟にいろいろできて良いんだけど、 エラーになったり想定外の挙動になった時に、初心者が自己解決できないケースがけっこうありそう。 (というか自分が何度かハマった) PowerShell初心者向けに、オブジェクトとはなんたるかを一から説明してる資料も少なそうだし、 PythonとかC#のほうがむしろ挙動が分かりやすいと思うので、それらを先にやったほうが楽だと思う。
- 1008 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 08:29:16.56ID:RPJTgULc.net]
- だから、勉強する順番では、
>>974 に書いたように、 Ruby Python (PowerShell) 日本には「たのしいRuby 第5版、2016」があるから、外人よりも圧倒的に有利 外人は訳のわからない、MITのPythonの本とかで、スタートするから、さっぱり出来ない
- 1009 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 08:31:30.31ID:NmLbt9VS.net]
- 何やるかによるけど、日本人の場合はエクセル+vbaでいいんじゃね?と思う
9割ぐらいはこれを使うことになるだろう
- 1010 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 08:46:03.70ID:/WrwABBj.net]
- ruby推しの狂信者が必死だけど
- 1011 名前:んなガラパ言語はオヌヌメしない []
- [ここ壊れてます]
- 1012 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 11:46:21.63ID:NmDuToTQ.net]
- Rubyの価値はRuby on Rails
これに尽きるといっていい それ以外はない だがまつもと氏は尊敬してる
- 1013 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 12:16:35.30ID:u63tuZ9/.net]
- 俺はphp java javascript python rustの順
cはなんとなーくわかる
- 1014 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 12:40:30.13ID:l3I5XkNn.net]
- > 9割はエクセル+vba
もっと社会を見たほうが良い 会社じゃなくて社会な
- 1015 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 12:41:09.53ID:/WrwABBj.net]
- 松本って、トヨタケーラムからruby盗んだんでしょ
それともちゃんと権利譲渡受けてんの?
- 1016 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 13:31:10.10ID:dFpq1SmP.net]
- >>994
kwsk
- 1017 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 13:36:23.38ID:ktSIKEk8.net]
- >>994
ヒント トヨタケームラ在籍:1994〜1997年 Ruby: 1993年2月24日生まれ
- 1018 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 13:37:08.50ID:ktSIKEk8.net]
- ケーラム
- 1019 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 13:42:21.10ID:dFpq1SmP.net]
- >>996
在籍期間の前なら問題無いのでは?
- 1020 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 13:43:55.32ID:a8yGtQef.net]
- 999
- 1021 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 13:44:38.42ID:a8yGtQef.net]
- 1000
- 1022 名前:1001 [Over 1000Thread.net]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。 life time: 59日 18時間 43分 17秒
- 1023 名前:1002 [Over 1000Thread.net]
- 2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 2ちゃんねる専用ブラウザからの広告除去 ★ 2ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ https://premium.2ch.net/ ▼ 浪人ログインはこちら ▼ https://login.2ch.net/login.php
- 1024 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|