C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part149
https://mevius.5ch.net/test/read.cgi/tech/1581974381/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
テンプレここまで
探検
C++相談室 part150
■ このスレッドは過去ログ倉庫に格納されています
2020/03/24(火) 00:04:33.93ID:YFRNwZnv
504デフォルトの名無しさん
2020/04/29(水) 02:43:38.13ID:BrDWvzn9 >>503
RTTI の場合は、仮想テーブルと同様の場所に、実行時型情報へのリンクポインタが
書き込まれるようになる。
それがなかなか複雑な構造をしている。
RTTI情報も、ヘッダファイルの中に構造体が書いてあると、COMDAT形式で
全ての *.obj ファイルの中にいったん書きこまれることがある。
リンク段階で同じデータのsectionがある場合は、単一のsectionだけを残して
他は削除されてしまうが。
RTTI の場合は、仮想テーブルと同様の場所に、実行時型情報へのリンクポインタが
書き込まれるようになる。
それがなかなか複雑な構造をしている。
RTTI情報も、ヘッダファイルの中に構造体が書いてあると、COMDAT形式で
全ての *.obj ファイルの中にいったん書きこまれることがある。
リンク段階で同じデータのsectionがある場合は、単一のsectionだけを残して
他は削除されてしまうが。
505デフォルトの名無しさん
2020/04/29(水) 02:45:01.49ID:BrDWvzn9506デフォルトの名無しさん
2020/04/29(水) 03:00:07.88ID:s4ud4ToE >>484
mono、core、zamarin調べて出直してこい
mono、core、zamarin調べて出直してこい
507デフォルトの名無しさん
2020/04/29(水) 10:03:27.37ID:I9/54o5j enum class を1オリジンにするスタイルはどの程度使われていますか?
508デフォルトの名無しさん
2020/04/29(水) 10:59:38.40ID:I9/54o5j char8_tってどういう経緯で採択されたんですか?
Microsoftを利する提案が受け入れられるのは相当珍しいと思いますが。
Microsoftを利する提案が受け入れられるのは相当珍しいと思いますが。
509はちみつ餃子 ◆8X2XSCHEME
2020/04/29(水) 12:00:55.06ID:sxS/u8Yc510デフォルトの名無しさん
2020/04/29(水) 12:20:11.19ID:I9/54o5j その要望は昔からあるけど阻止してきたのに、なぜ解禁されたのか事情知りませんか?
511はちみつ餃子 ◆8X2XSCHEME
2020/04/29(水) 12:43:30.81ID:sxS/u8Yc >>510
江添亮のブログで関連する提案や議論が取り上げられているので順番に読んでみたらいいと思う。
https://cpplover.blogspot.com/search?q=char8_t
具体的にこれが理由と言えるひとつの理由があるわけではないけど、
やってみたらやっぱ要るわ……という雰囲気っぽいかな。
要するに文字列をナメてたんだろう。
江添亮のブログで関連する提案や議論が取り上げられているので順番に読んでみたらいいと思う。
https://cpplover.blogspot.com/search?q=char8_t
具体的にこれが理由と言えるひとつの理由があるわけではないけど、
やってみたらやっぱ要るわ……という雰囲気っぽいかな。
要するに文字列をナメてたんだろう。
512デフォルトの名無しさん
2020/04/29(水) 13:58:02.79ID:6qGxEOGB513デフォルトの名無しさん
2020/04/29(水) 14:13:57.87ID:j7Bsjnws charにutf8突っ込むだけでunicode対応できるとか考えるやつがようやく淘汰されてきてありがたい
514デフォルトの名無しさん
2020/04/29(水) 14:46:58.81ID:UddvUJZz そもそも「Microsoftを利する提案」てなんだよ
C++は別にアンチMSじゃないだろ
C++は別にアンチMSじゃないだろ
515デフォルトの名無しさん
2020/04/29(水) 14:58:22.63ID:fDjn2ZQ/ utf8は一文字が3バイトなこともある
516デフォルトの名無しさん
2020/04/29(水) 15:01:51.37ID:I9/54o5j std::size(u8"あいうえお" - 1)みたいな感じですかね。
517デフォルトの名無しさん
2020/04/29(水) 16:00:32.94ID:fokztjWx std::u8stringとかC++は規格に出すのが遅い
518デフォルトの名無しさん
2020/04/29(水) 16:10:17.68ID:I9/54o5j >>514
W3CもアンチMicrosoftではないのだけど、会員がIT業界の人たちなので、結局のところ、如何にしてMicrosoftを落とすか討論する場所になってました。
W3CもアンチMicrosoftではないのだけど、会員がIT業界の人たちなので、結局のところ、如何にしてMicrosoftを落とすか討論する場所になってました。
519デフォルトの名無しさん
2020/04/29(水) 16:22:55.14ID:T9sEu8SV520デフォルトの名無しさん
2020/04/29(水) 17:04:53.68ID:EKyVvulT521デフォルトの名無しさん
2020/04/29(水) 17:10:00.22ID:IQZPjtSj enum class とか、MS起源の機能なんていくらでもあるんだけどな
522デフォルトの名無しさん
2020/04/29(水) 18:31:43.41ID:mBdz0qQc523デフォルトの名無しさん
2020/04/29(水) 18:51:27.37ID:BrDWvzn9 >>522
うむ。関係ない。
うむ。関係ない。
524デフォルトの名無しさん
2020/04/29(水) 20:13:29.91ID:Ck1GLV1r525デフォルトの名無しさん
2020/04/29(水) 21:26:43.63ID:6qGxEOGB まあ書いてあることは概ね正しいので・・・
526デフォルトの名無しさん
2020/04/29(水) 21:36:36.72ID:mBdz0qQc そうかな
utf8をコア仕様にいれたら「文字とは何かを理解する」ってのは
ちょっと同意できないな
utf8をコア仕様にいれたら「文字とは何かを理解する」ってのは
ちょっと同意できないな
527デフォルトの名無しさん
2020/04/29(水) 22:08:32.37ID:I9/54o5j constexprがあるので、エンコーディングを型に組み込んでしまっても、困ることは全くない。
C++のお作法になじんでいれば、お得な事しかない。
C++のお作法になじんでいれば、お得な事しかない。
528デフォルトの名無しさん
2020/04/29(水) 22:11:31.22ID:GvXmmF1B それ、カーニハン・リッチーにも言えるの?
529デフォルトの名無しさん
2020/04/29(水) 23:00:00.81ID:I9/54o5j 連れてきてくれたら、ガツンと言ってやるよ。
530デフォルトの名無しさん
2020/04/29(水) 23:13:52.04ID:sxS/u8Yc 一休さんかよ
531デフォルトの名無しさん
2020/04/30(木) 12:33:45.41ID:yesxJOcI UTF8ベースにしたらどうやって1文字ずつ処理するの?めんどくさい?
532デフォルトの名無しさん
2020/04/30(木) 12:38:45.38ID:yesxJOcI533デフォルトの名無しさん
2020/04/30(木) 12:45:47.62ID:ERcZittz534デフォルトの名無しさん
2020/04/30(木) 12:50:20.00ID:IVFUa3Rm ICUのイテレータ使えばよいのでは。
内部では utf-32 ベースで処理して、出口入り口で utf-8 に/から変換するものだと思いますが…
536デフォルトの名無しさん
2020/04/30(木) 20:49:36.61ID:IVFUa3Rm そんな単純なものではないだろうけど。
537デフォルトの名無しさん
2020/04/30(木) 23:06:50.07ID:b9TIw4B4 期間工ブログの収入は1500万円でした。【フリーランスの現実&底辺からの復活編】
https://www.youtube.com/watch?v=aijLjFLOuC4
工場勤務、30代フリーターが「ブログ」で200万稼げた理由! ◯◯があったから?
https://www.youtube.com/watch?v=Cjmk4XusQVM
ブログで月200万稼ぐ、フリーランスの1日
https://www.youtube.com/watch?v=jaV2GyBgNX4
【クラウドソーシング】Webライティングで月商100万円まで稼ぐ方法をプロに解説してもらった!
https://www.youtube.com/watch?v=oYoaBwQt0Cg
1年半でライターの地位を確立した営業術!駆け出しフリーランスは要チェック【ニシキドアヤト】
https://www.youtube.com/watch?v=DFtmkhw-lHM
https://www.youtube.com/watch?v=aijLjFLOuC4
工場勤務、30代フリーターが「ブログ」で200万稼げた理由! ◯◯があったから?
https://www.youtube.com/watch?v=Cjmk4XusQVM
ブログで月200万稼ぐ、フリーランスの1日
https://www.youtube.com/watch?v=jaV2GyBgNX4
【クラウドソーシング】Webライティングで月商100万円まで稼ぐ方法をプロに解説してもらった!
https://www.youtube.com/watch?v=oYoaBwQt0Cg
1年半でライターの地位を確立した営業術!駆け出しフリーランスは要チェック【ニシキドアヤト】
https://www.youtube.com/watch?v=DFtmkhw-lHM
538デフォルトの名無しさん
2020/05/01(金) 00:49:44.42ID:2K4VYu4Y >>528
リッチーならともかくカーニハンは見てる可能性
リッチーならともかくカーニハンは見てる可能性
539はちみつ餃子 ◆8X2XSCHEME
2020/05/01(金) 01:06:57.59ID:Qu9UE9Tc >>535
色んな文字コード (符号化) を扱うときは出入口で変換する方法は妥当な選択だと思うけど、
UTF-32 を中心に据えるのが良いかは一概に言えるものでもないでしょ。
たとえば Windows API がいう Unicode は UTF-16 なわけだし、
外部とのデータのやりとりで内部用の符号に変換する処理が入るのは仕方がないにしても
API の呼び出しのときまで毎回変換が入るのも煩雑なんで、
UTF-16 に統一した方全体としては楽じゃない?
サロゲートペアの扱いが面倒くせぇとかいうのと天秤にかけたとしても
Windows では UTF-16 から離れられない。
結局のところ実行環境とかフレームワークとかの都合に縛られるから
(内部用の符号として UTF-32 が優秀なことは承知しているが)
そのへんの規約とか習慣に従うしかしゃーない。
色んな文字コード (符号化) を扱うときは出入口で変換する方法は妥当な選択だと思うけど、
UTF-32 を中心に据えるのが良いかは一概に言えるものでもないでしょ。
たとえば Windows API がいう Unicode は UTF-16 なわけだし、
外部とのデータのやりとりで内部用の符号に変換する処理が入るのは仕方がないにしても
API の呼び出しのときまで毎回変換が入るのも煩雑なんで、
UTF-16 に統一した方全体としては楽じゃない?
サロゲートペアの扱いが面倒くせぇとかいうのと天秤にかけたとしても
Windows では UTF-16 から離れられない。
結局のところ実行環境とかフレームワークとかの都合に縛られるから
(内部用の符号として UTF-32 が優秀なことは承知しているが)
そのへんの規約とか習慣に従うしかしゃーない。
540デフォルトの名無しさん
2020/05/01(金) 01:37:06.74ID:/3xCHgCD 出入り口から内部処理まで出来る限りutf-8で統一して処理するのが
トラブルが少なくて済む(個人の感想です)
トラブルが少なくて済む(個人の感想です)
541デフォルトの名無しさん
2020/05/01(金) 02:27:55.90ID:uatxyJey それは文字列としてだけ扱って文字単位(code point単位)の操作しないときでしょ
あるいは小難しいところは全部ライブラリに投げてるとかね
あるいは小難しいところは全部ライブラリに投げてるとかね
>>539
>たとえば Windows API がいう Unicode は UTF-16 なわけだし、(略)
>API の呼び出しのときまで毎回変換が入るのも煩雑なんで、
>UTF-16 に統一した方全体としては楽じゃない?
Windows では UTF-16 を使うといっても、実際に変換しなければならないのは、ファイル名・パス名を扱うときだけですし、
UTF-16 も可変長の部分があって扱いにくいので、私なら UTF-32 で楽したいと考えますね
>たとえば Windows API がいう Unicode は UTF-16 なわけだし、(略)
>API の呼び出しのときまで毎回変換が入るのも煩雑なんで、
>UTF-16 に統一した方全体としては楽じゃない?
Windows では UTF-16 を使うといっても、実際に変換しなければならないのは、ファイル名・パス名を扱うときだけですし、
UTF-16 も可変長の部分があって扱いにくいので、私なら UTF-32 で楽したいと考えますね
543デフォルトの名無しさん
2020/05/01(金) 08:23:58.09ID:DtDCGOpK 実際にソフト開発したことが無いような書き込みだな
544デフォルトの名無しさん
2020/05/01(金) 08:31:51.38ID:NLgIsVNa UTF-32でも結合文字と異体字セレクタはある
結局ライブラリに投げるでしょ、ならどれでも同じじゃね?
結局ライブラリに投げるでしょ、ならどれでも同じじゃね?
545デフォルトの名無しさん
2020/05/01(金) 08:47:44.57ID:sYrLq0eo マルチプラットフォームのアプリじゃ内部はUTF-8にする場合が多いけどな
なぜならUTF-8にはバイト順問題がないから
どのみち一文字表すのに複数のコードポイントが必要なんだからUTF-8、16、32のどれを使っても言語処理の手間は同じだ
「イングランドの旗」絵文字なんてコードポイントで7要素も必要なんだぜ
なぜならUTF-8にはバイト順問題がないから
どのみち一文字表すのに複数のコードポイントが必要なんだからUTF-8、16、32のどれを使っても言語処理の手間は同じだ
「イングランドの旗」絵文字なんてコードポイントで7要素も必要なんだぜ
546デフォルトの名無しさん
2020/05/01(金) 09:58:16.26ID:k2YlXFh6 マルチコアの高速化と同様に
32bitのCPUで16bitを扱うと2倍速
64bitのCPUで16bitを扱うと4倍速
みたいにならないんですか?
32bitのCPUで16bitを扱うと2倍速
64bitのCPUで16bitを扱うと4倍速
みたいにならないんですか?
547デフォルトの名無しさん
2020/05/01(金) 10:00:07.33ID:tdkjZBPc なりますよ。
548デフォルトの名無しさん
2020/05/01(金) 10:02:36.39ID:tdkjZBPc 32ビットと64ビットで二倍の時間になるのではなく、たいてい4倍になりますよ。
549デフォルトの名無しさん
2020/05/01(金) 10:13:13.46ID:Ia4c8IgS 文字列関連の処理はだいたいメモリアクセスかIOがボトルネックなので、単純にサイズが 増えればその分遅くなるよ
550デフォルトの名無しさん
2020/05/01(金) 10:19:22.16ID:DtDCGOpK 文字処理のほとんどは64bitがいかされない
551デフォルトの名無しさん
2020/05/01(金) 10:22:39.64ID:DtDCGOpK 文字処理以外でもそれほど多くない
552デフォルトの名無しさん
2020/05/01(金) 13:13:05.71ID:uatxyJey >>546
simd使えばそれに近づくだろうけど
そうでなければシリアルに計算されるだけなのでほぼ変わらない
大量のデータを処理する場合はメモリ効率の点で速くなるかもしれない
しかしintへの拡大変換が入るので演算自体は遅くなる方向
まぁ自分でベンチとってアセンブラ眺めてみたらいい
かなり環境依存・実装依存なんだから人にきいてもあんまり意味ない
4倍になる人とかいるらしいしw
simd使えばそれに近づくだろうけど
そうでなければシリアルに計算されるだけなのでほぼ変わらない
大量のデータを処理する場合はメモリ効率の点で速くなるかもしれない
しかしintへの拡大変換が入るので演算自体は遅くなる方向
まぁ自分でベンチとってアセンブラ眺めてみたらいい
かなり環境依存・実装依存なんだから人にきいてもあんまり意味ない
4倍になる人とかいるらしいしw
553デフォルトの名無しさん
2020/05/01(金) 13:22:02.62ID:DtDCGOpK SIMDなら32bit CPUとか64bit CPUとか関係ないし
554デフォルトの名無しさん
2020/05/01(金) 14:33:57.85ID:RpLrbaMs 例えばRGBAの計算は早くなるよ
555デフォルトの名無しさん
2020/05/01(金) 14:54:56.02ID:8qmJgOle tclインタプリタに投げる
邪魔くさい
邪魔くさい
556デフォルトの名無しさん
2020/05/01(金) 15:22:00.38ID:tdkjZBPc >>552
ベンチとるとおよそ4倍になりますよ。
ベンチとるとおよそ4倍になりますよ。
557デフォルトの名無しさん
2020/05/01(金) 16:04:33.87ID:uatxyJey558デフォルトの名無しさん
2020/05/01(金) 16:07:40.19ID:wrmDV0oq 64bitを使っても、大部分のソフトウェアは速くも良くもならない事が知られている。
16bitから32bitの時には急激に多くのメモリが使えるようになって劇的にソフトウェア
が作り易くなったのと対照的。
メモリ容量に関してはたいていのアプリでは32bitでも既に十分。
速度に関してはそもそもCPUが扱えるデータビット数を多くしても滅多に速くならない。
速くなるのはグラフィックで単純なBitBLTを行うような場合のみ。
縮尺や回転が入るだけで64BITの効果は通常、生かせなくなる。
16bitから32bitの時には急激に多くのメモリが使えるようになって劇的にソフトウェア
が作り易くなったのと対照的。
メモリ容量に関してはたいていのアプリでは32bitでも既に十分。
速度に関してはそもそもCPUが扱えるデータビット数を多くしても滅多に速くならない。
速くなるのはグラフィックで単純なBitBLTを行うような場合のみ。
縮尺や回転が入るだけで64BITの効果は通常、生かせなくなる。
559デフォルトの名無しさん
2020/05/01(金) 16:13:27.06ID:DtDCGOpK >>554
変わった文字列処理だな
変わった文字列処理だな
560デフォルトの名無しさん
2020/05/01(金) 16:15:49.44ID:wrmDV0oq >>554
RGBA計算も、(SIMDを使わずに)単純にデータバスが64BITになっただけでは速く出来ない。
なぜなら、R,G,B,Aはそれぞれ1バイトだから1バイトずつの計算するしかないため。
SIMDを使う場合は、CPUの種類によっては、SIMD自体のベクトルの要素数が倍になるため、高速化できる可能性はある。
ただしそれは、整数命令が64BIT化されたこととは直接関係ない。
SIMD命令のベクトルの「次元」が上がったかどうかの問題。
RGBA計算も、(SIMDを使わずに)単純にデータバスが64BITになっただけでは速く出来ない。
なぜなら、R,G,B,Aはそれぞれ1バイトだから1バイトずつの計算するしかないため。
SIMDを使う場合は、CPUの種類によっては、SIMD自体のベクトルの要素数が倍になるため、高速化できる可能性はある。
ただしそれは、整数命令が64BIT化されたこととは直接関係ない。
SIMD命令のベクトルの「次元」が上がったかどうかの問題。
561デフォルトの名無しさん
2020/05/01(金) 16:18:51.22ID:DtDCGOpK >>560
なんでわざわざ関係ないことを書いてわざわざ混乱させようとするかなあ
なんでわざわざ関係ないことを書いてわざわざ混乱させようとするかなあ
562デフォルトの名無しさん
2020/05/01(金) 16:20:54.72ID:tdkjZBPc 64ビットの演算1回の時間で、32ビットの演算4回出来るんですよ。
563デフォルトの名無しさん
2020/05/01(金) 16:22:03.22ID:wrmDV0oq >>547
なりません。
ならないからこそ、GPGPUのようにマルチコア化が進められています。
SIMD命令も扱いにくいので、マルチコア化が適しています。
例えば、3Dのレイトレーシングなどは、SIMD化することはとても難しい
のですが、マルチコア化は比較的容易です。
人工知能のニューラルネットワークの計算はSIMD化し易い部分もあります。
しかし、300コアなどのマルチコアと、8要素のSIMD命令では、
前者に軍配が上がり易く、しかも、コア数が増えてもプログラムの修正が
ほぼ不要なので、マルチコアの方がSIMDより好まれます。
ただし、命令自体の速度がx86系は速いため、どちらが実際に速いかは
単純ではありませんが。
なりません。
ならないからこそ、GPGPUのようにマルチコア化が進められています。
SIMD命令も扱いにくいので、マルチコア化が適しています。
例えば、3Dのレイトレーシングなどは、SIMD化することはとても難しい
のですが、マルチコア化は比較的容易です。
人工知能のニューラルネットワークの計算はSIMD化し易い部分もあります。
しかし、300コアなどのマルチコアと、8要素のSIMD命令では、
前者に軍配が上がり易く、しかも、コア数が増えてもプログラムの修正が
ほぼ不要なので、マルチコアの方がSIMDより好まれます。
ただし、命令自体の速度がx86系は速いため、どちらが実際に速いかは
単純ではありませんが。
564デフォルトの名無しさん
2020/05/01(金) 16:23:18.73ID:wrmDV0oq565デフォルトの名無しさん
2020/05/01(金) 16:25:25.15ID:tdkjZBPc 測ると大抵そうなってるというお話です。
566デフォルトの名無しさん
2020/05/01(金) 16:33:18.55ID:DtDCGOpK 測定結果みせて
567デフォルトの名無しさん
2020/05/01(金) 16:33:57.33ID:tdkjZBPc これ最初に気が付いたのは、固定小数点は速いらしいというのを見て、いろいろやってみたら、特に早いことは無くて。
じゃあ何が影響するかというと、単にビット幅だったんですよ。
floatとint32_tは同じ、doubleとint64_tは同じ。
つまり、アキュムレータの性能はあまり関係なくて、バス幅とキャッシュがすべてなんですよ。
じゃあ32ビット2回分が64ビット相当になるかというとそうでもなくて。
たいてい4回分で64ビット相当になるんですね。
じゃあ何が影響するかというと、単にビット幅だったんですよ。
floatとint32_tは同じ、doubleとint64_tは同じ。
つまり、アキュムレータの性能はあまり関係なくて、バス幅とキャッシュがすべてなんですよ。
じゃあ32ビット2回分が64ビット相当になるかというとそうでもなくて。
たいてい4回分で64ビット相当になるんですね。
568デフォルトの名無しさん
2020/05/01(金) 16:37:43.83ID:DtDCGOpK だから測定結果早くみせて
>>558
まさか!
2^32 bit 空間が狭すぎる、というのは windows XP の頃から問題になっており、2^64 bit 空間は必然でした
>メモリ容量に関してはたいていのアプリでは32bitでも既に十分。
個々のアプリ単体ではそうであっても、個々のアプリを複数稼動させる OS では32bit では足りないのでは?
そして 64bit OS に対応した 64bit アプリの存在も必要でしょう
まさか!
2^32 bit 空間が狭すぎる、というのは windows XP の頃から問題になっており、2^64 bit 空間は必然でした
>メモリ容量に関してはたいていのアプリでは32bitでも既に十分。
個々のアプリ単体ではそうであっても、個々のアプリを複数稼動させる OS では32bit では足りないのでは?
そして 64bit OS に対応した 64bit アプリの存在も必要でしょう
570デフォルトの名無しさん
2020/05/01(金) 16:38:26.67ID:tdkjZBPc 自分で測ってもらえませんかね。
571デフォルトの名無しさん
2020/05/01(金) 16:41:04.33ID:tdkjZBPc あと、僕はベンチマークのカタログとしてVSのテストエクスプローラ使ってますよ。
テストケースを一つずつ呼び出せるので大変便利です。
テストケースを一つずつ呼び出せるので大変便利です。
572デフォルトの名無しさん
2020/05/01(金) 16:42:32.75ID:8qmJgOle 何をして速くなったと言っているのか不明なのに自分でってw
573デフォルトの名無しさん
2020/05/01(金) 16:45:05.04ID:uatxyJey574デフォルトの名無しさん
2020/05/01(金) 16:46:27.92ID:tdkjZBPc575デフォルトの名無しさん
2020/05/01(金) 16:51:31.85ID:wrmDV0oq Qz は馬鹿だ。
576デフォルトの名無しさん
2020/05/01(金) 16:54:18.57ID:uatxyJey577デフォルトの名無しさん
2020/05/01(金) 16:57:02.32ID:tdkjZBPc めんどくさいんですよ。
アセンブラ見れば速度がわかると言ってる時点で、僕は得るもの無いじゃないですか。
何か作業を手伝ってくれるならわかりやすく提示しても良いんですが。
作業を手伝ってもらうのに、色々教えないといけないなら、やっぱりめんどくさい。
アセンブラ見れば速度がわかると言ってる時点で、僕は得るもの無いじゃないですか。
何か作業を手伝ってくれるならわかりやすく提示しても良いんですが。
作業を手伝ってもらうのに、色々教えないといけないなら、やっぱりめんどくさい。
578デフォルトの名無しさん
2020/05/01(金) 17:00:18.65ID:DtDCGOpK 64bit命令を使うと4倍以上速くなるのは
64bitの乗算くらい
64bit加減算もCPUによっては数倍にはなる
それ以外は特殊な場合のみ
64bitの乗算くらい
64bit加減算もCPUによっては数倍にはなる
それ以外は特殊な場合のみ
579デフォルトの名無しさん
2020/05/01(金) 17:17:48.30ID:9YfMO5iP intとint64_tで適当なfor分で配列計算やらせてみればわかる。
手元じゃint64_tのが若干遅い
手元じゃint64_tのが若干遅い
580デフォルトの名無しさん
2020/05/01(金) 18:21:10.38ID:wrmDV0oq >>569
それは当たり前で、マシンには4GB以上のメモリが乗っているので、32BIT
では、OSレベルでは扱いにくい。
多くのプログラマにとって大事なのは、個々のアプリの問題だから、
OSレベルの話は関係ない。、
また、Windows OSがメモリーを食いすぎているという問題もある。
それは当たり前で、マシンには4GB以上のメモリが乗っているので、32BIT
では、OSレベルでは扱いにくい。
多くのプログラマにとって大事なのは、個々のアプリの問題だから、
OSレベルの話は関係ない。、
また、Windows OSがメモリーを食いすぎているという問題もある。
581デフォルトの名無しさん
2020/05/01(金) 18:23:48.97ID:wrmDV0oq >>580
補足すれば、グラフィック用のRAMは大きくなりがちで、最近のWindowsでは、
1つのWindowに仮想VRAMを割り当てているから、アプリが起動するたびに
グラフィック用になかなか大きなメモリーを消費する。
それと、ブラウザで複数のタブを開いている影響。
あれもグラフィックのレンダリング用に大量のメモリーを食っているのかもしれない。
補足すれば、グラフィック用のRAMは大きくなりがちで、最近のWindowsでは、
1つのWindowに仮想VRAMを割り当てているから、アプリが起動するたびに
グラフィック用になかなか大きなメモリーを消費する。
それと、ブラウザで複数のタブを開いている影響。
あれもグラフィックのレンダリング用に大量のメモリーを食っているのかもしれない。
582デフォルトの名無しさん
2020/05/01(金) 18:31:06.76ID:IyliQkiG >>577
他人を説得するつもりがないなら不特定多数が集まる場で自論を展開せず、馬鹿なこと言ってるなフフッて一人悦に入ってればいいんでない?
他人を説得するつもりがないなら不特定多数が集まる場で自論を展開せず、馬鹿なこと言ってるなフフッて一人悦に入ってればいいんでない?
583デフォルトの名無しさん
2020/05/01(金) 18:32:39.35ID:IyliQkiG >>575
全面的に同意
全面的に同意
584デフォルトの名無しさん
2020/05/01(金) 18:40:33.09ID:DtDCGOpK >>575
私も同意
私も同意
585デフォルトの名無しさん
2020/05/01(金) 19:15:32.79ID:wrmDV0oq >>580
今は、見えないものまで含めれば50個のプロセスが動いているなんてことは当たり前になっている。
だから、個々のプロセスが80MBのメモリしか使って無くても、合計すれば4GBになる。
さらにファイルバッファや、OSが高速化のためにさまざまなキャッシュ的なデータを保持している。
しかも、ファイルバッファやキャッシュはいくらあっても不足する時代となった。
ブラウザがページを記録するためのキャッシュも必要だ。
そういう訳で、アプリが80MBしか使って無くても、OS全体では4GBではメモリが不足する。
というわけで、4GBを超えるメモリが必要となっている。
タスクマネージャーで見ていても、個々のアプリは、多くても数百MB程度のものが多い。
ファイル高速検索ツールなんかが、1.6GBも使っていたりするが、それは特殊。
だから「特殊なものを除いては」今のアプリが2GBを超えるメモリーを必要とすることは稀、だと言っている。
今は、見えないものまで含めれば50個のプロセスが動いているなんてことは当たり前になっている。
だから、個々のプロセスが80MBのメモリしか使って無くても、合計すれば4GBになる。
さらにファイルバッファや、OSが高速化のためにさまざまなキャッシュ的なデータを保持している。
しかも、ファイルバッファやキャッシュはいくらあっても不足する時代となった。
ブラウザがページを記録するためのキャッシュも必要だ。
そういう訳で、アプリが80MBしか使って無くても、OS全体では4GBではメモリが不足する。
というわけで、4GBを超えるメモリが必要となっている。
タスクマネージャーで見ていても、個々のアプリは、多くても数百MB程度のものが多い。
ファイル高速検索ツールなんかが、1.6GBも使っていたりするが、それは特殊。
だから「特殊なものを除いては」今のアプリが2GBを超えるメモリーを必要とすることは稀、だと言っている。
586デフォルトの名無しさん
2020/05/01(金) 19:19:38.83ID:DtDCGOpK それ
64bitで4倍
とどういう関係?
64bitで4倍
とどういう関係?
587デフォルトの名無しさん
2020/05/01(金) 19:22:30.31ID:DtDCGOpK 32bit Windowsが4GBまでなのはWindowsの仕様であってCPU自体はそんな縛りは無いし
588デフォルトの名無しさん
2020/05/01(金) 19:51:53.68ID:wrmDV0oq589デフォルトの名無しさん
2020/05/01(金) 20:58:17.99ID:9yUywlA0 64GBまで使えるようになったのPentium Proからだぜ?w
Klamathより前!!
Klamathより前!!
590デフォルトの名無しさん
2020/05/02(土) 00:04:20.13ID:jVHOaTi/ >>547
釣り針でかいなw ここム板だぜw
釣り針でかいなw ここム板だぜw
591デフォルトの名無しさん
2020/05/02(土) 00:05:14.57ID:jVHOaTi/ >>587
おまえ嘘ばかりだなw
おまえ嘘ばかりだなw
592デフォルトの名無しさん
2020/05/02(土) 01:38:26.25ID:2lkgjmOV >>591
いや、彼は正しいことを言っている。
あなたがIntel CPUの仕様を詳しく知らないだけ。
PAEという仕組みなどで32BITモードでも4GBを超える物理メモリーを扱うことができるようになっていた。
いや、彼は正しいことを言っている。
あなたがIntel CPUの仕様を詳しく知らないだけ。
PAEという仕組みなどで32BITモードでも4GBを超える物理メモリーを扱うことができるようになっていた。
593デフォルトの名無しさん
2020/05/02(土) 01:45:40.91ID:ZXOrLboX PAEが何なのか全く分かってなさそう
594デフォルトの名無しさん
2020/05/02(土) 02:28:22.28ID:2lkgjmOV QZは女なのだろうか。
ショックかも知れないがはっきり言えば、本質的に物事が正確に理解できていないようだ。
ショックかも知れないがはっきり言えば、本質的に物事が正確に理解できていないようだ。
595デフォルトの名無しさん
2020/05/03(日) 09:20:54.04ID:slLa0KBW EMSなら前に聞いたことがある
596デフォルトの名無しさん
2020/05/03(日) 09:24:35.32ID:WVD/IFzz 8bit CPUは256Bしか扱えないと思ってる人いる?
597デフォルトの名無しさん
2020/05/03(日) 09:29:47.71ID:6v/wuiGx 16bitのCPUでも16bitアドレスの最大値である64KBを超えて1MBもアクセスできていたからな。
598デフォルトの名無しさん
2020/05/03(日) 10:03:25.11ID:WVD/IFzz >>594
女なら180度対応を変えます
女なら180度対応を変えます
599デフォルトの名無しさん
2020/05/03(日) 10:22:47.73ID:LxtsyLet >>597
16BIT CPU であった 8086は、16bit アドレスを超える範囲は、セグメントレジスタ
と合わせた seg:ofs の形式の far pointer を使わなくてはならならず、
単純に扱えるのは16BITまでで、16BITを超えた範囲では、seg レジスタの値を
足していかないといけなかった。しかも、segがアドレスの上位16BITだったなら
まだしも、16バイト単位のアドレスだったので、segレジスタに入れる値を計算
するのがとても重くなってしまっていた。
ところが、Z80 などの 8BIT CPUは、普通に 16BIT レジスタの
HL や DE, BC, IX, IY をもっており、8086 と比べれば扱いは容易だった。
その意味では、8086は、メモリーアクセスに関してはZ80と同じくらいしか
能力を持っていなかった。
それで8086の16BITモードでは限界が来て32BITモードのOSが待望された。
そしてMacのGUIを真似た機能を持っていたこととも合わせて32BITモードで
動いたWin95となった。
ただし、このような状況は64BIT化に関しては全く無い。
16BIT CPU であった 8086は、16bit アドレスを超える範囲は、セグメントレジスタ
と合わせた seg:ofs の形式の far pointer を使わなくてはならならず、
単純に扱えるのは16BITまでで、16BITを超えた範囲では、seg レジスタの値を
足していかないといけなかった。しかも、segがアドレスの上位16BITだったなら
まだしも、16バイト単位のアドレスだったので、segレジスタに入れる値を計算
するのがとても重くなってしまっていた。
ところが、Z80 などの 8BIT CPUは、普通に 16BIT レジスタの
HL や DE, BC, IX, IY をもっており、8086 と比べれば扱いは容易だった。
その意味では、8086は、メモリーアクセスに関してはZ80と同じくらいしか
能力を持っていなかった。
それで8086の16BITモードでは限界が来て32BITモードのOSが待望された。
そしてMacのGUIを真似た機能を持っていたこととも合わせて32BITモードで
動いたWin95となった。
ただし、このような状況は64BIT化に関しては全く無い。
600デフォルトの名無しさん
2020/05/03(日) 10:32:19.81ID:6v/wuiGx そりゃまあ、64bitCPUがすでにいきわたっていてOS変えるだけで対応できたからね
WINAPIだって16→32のコンパイルはまず動かないけど32→64なら普通は動く
DOS時代のUMBみたいなみみっちい事態にならなくてよかったじゃん
WINAPIだって16→32のコンパイルはまず動かないけど32→64なら普通は動く
DOS時代のUMBみたいなみみっちい事態にならなくてよかったじゃん
601デフォルトの名無しさん
2020/05/03(日) 10:35:22.17ID:OJMdC3Cv 86用コンパイラでnearとfarの他にhugeが有ると知らず、無限ループ作ってOSごと来なくなったあの頃
602デフォルトの名無しさん
2020/05/03(日) 11:16:28.83ID:WVD/IFzz 結局64bit CPUだと速度4倍のコードは?
603デフォルトの名無しさん
2020/05/03(日) 13:08:16.85ID:m/iHOjCC long longとint64_tの違いってlong longは環境によって64bitじゃなくなるけどint64_tは常に64ってことですか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 [蚤の市★]
- 【熊本】園児に強制性交か 保育所勤務の男を逮捕「性的な欲望が我慢できなかった」警察は余罪を調べる [七波羅探題★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【サッカー】上田綺世の活躍は「一過性」 15戦18発も…オランダ英雄は懐疑的な姿勢「確信に至っていない」 [ゴアマガラ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★3 [ぐれ★]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ [597533159]
- X民「高市さん擬人化してみた。可愛すぎる」10万いいね [165981677]
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- 🏡
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ180
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
