Hello hackers !
Qiitaは、エンジニアリングに関する知識を記録・共有するためのサービスです。
コードを書いていて気づいたことや、自分がハマったあの仕様について、
他のエンジニアと知見を共有しましょう ;)
https://qiita.com/
Qiita(キータ)は、Incrementsが運営するプログラミング情報のナレッジコミュニティ。
2016年現在で日本最大のプログラマーコミュニティとされている[1]。
https://internet.watch.impress.co.jp/docs/news/1025972.html
前スレ Qiita
https://mevius.5ch.net/test/read.cgi/tech/1542357242/
Qiita 2 - キータぞ、来たぞ、キータだぞー
https://mevius.5ch.net/test/read.cgi/tech/1658762410/
Qiita 3 - キータぞ、来たぞ、キータだぞー
■ このスレッドは過去ログ倉庫に格納されています
2023/05/28(日) 09:56:01.47ID:twg6yDS4
221デフォルトの名無しさん
2023/07/24(月) 15:07:41.98ID:4CElhr6b シャコタンは文化だから理解しない人もいるかもね
222デフォルトの名無しさん
2023/07/24(月) 15:39:05.61ID:6QZoLF36 ま、ユーザーがロードカーの車高を下げても良いことは何もないんだけどね
カッコいいと感じる感性の持ち主の部族のことは知らん
カッコいいと感じる感性の持ち主の部族のことは知らん
223デフォルトの名無しさん
2023/07/24(月) 21:51:54.02ID:ntDhAqp5 2つの封筒問題(封筒のパラドックス)
https://qiita.com/SaitoTsutomu/items/3079a88163153abf2ac2
数学っぽいこと書いてる雰囲気なデタラメ記事。
> ※ 本記事へのコメントはしないでください。コメントがあった場合、すべて削除依頼します。
書いた本人にも自覚はあるんだろうな。
https://qiita.com/SaitoTsutomu/items/3079a88163153abf2ac2
数学っぽいこと書いてる雰囲気なデタラメ記事。
> ※ 本記事へのコメントはしないでください。コメントがあった場合、すべて削除依頼します。
書いた本人にも自覚はあるんだろうな。
224デフォルトの名無しさん
2023/07/25(火) 05:43:25.14ID:09XXQ3/E >>223
2つの封筒問題(金額仮定版)の答えが「分からない」が真だとして、
なんで2つの封筒問題(未開封版)の答えが「変わらない」なのかが分からない。
金額仮定版は2つの事象が1/2で発生するか分からないから、という説明なのに対し
未開封版は2つの事象が1/2で発生することを前提にしているの?
2つの封筒問題(金額仮定版)の答えが「分からない」が真だとして、
なんで2つの封筒問題(未開封版)の答えが「変わらない」なのかが分からない。
金額仮定版は2つの事象が1/2で発生するか分からないから、という説明なのに対し
未開封版は2つの事象が1/2で発生することを前提にしているの?
225デフォルトの名無しさん
2023/07/25(火) 06:41:00.76ID:/3oiUHuE 数学っぽいとかなんで2つの封筒問題(未開封版)の答えが「変わらない」なのかが分からないとか
記事を開く気がしない
記事を開く気がしない
226デフォルトの名無しさん
2023/07/25(火) 06:42:02.53ID:/3oiUHuE なんで人はわからないものや数学っぽいものに惹かれるのか
227デフォルトの名無しさん
2023/07/26(水) 20:16:12.52ID:wSHYoxMZ わからないものはわからない
228デフォルトの名無しさん
2023/07/26(水) 21:41:05.02ID:1fb/10Y2 【検証してみた】株式会社ゆめみは、Organization対抗戦で不正をしているのか?
https://qiita.com/Yametaro/items/3988455d103d2408ea77
組織票は現状ルール違反ではないことを前提として書いてるんだろうけど
トレンドが全く役に立たなくなったし迷惑行為であることは認識して欲しいもんだわ。
https://qiita.com/Yametaro/items/3988455d103d2408ea77
組織票は現状ルール違反ではないことを前提として書いてるんだろうけど
トレンドが全く役に立たなくなったし迷惑行為であることは認識して欲しいもんだわ。
229デフォルトの名無しさん
2023/07/26(水) 21:47:14.30ID:lkScsrJu いやいやそもそも御本尊のキー太がね
検索結果のど真ん中に野糞置く教えだから
検索結果のど真ん中に野糞置く教えだから
230デフォルトの名無しさん
2023/07/26(水) 21:47:30.02ID:jPIzcFjy 詳しく読んでないけど、ベイズ推定にそんな説明あったね
231デフォルトの名無しさん
2023/07/27(木) 09:48:07.83ID:B9bn33s7232デフォルトの名無しさん
2023/07/27(木) 09:51:23.51ID:B9bn33s7233デフォルトの名無しさん
2023/07/27(木) 11:58:29.93ID:FdKMOCta QiitaはSEOに強かったからネットユーザーに認知されて参加するも
いいねが付かないことに悩み
オーガニゼーション(組織票)の存在に気づくのは1年以上後だろう
気づいたら参加モチベーションが下がる
不公平だからな
ほとんどのネットユーザーに認知され新規参加者がいなくなり組織に属さない人のモチベーションが下がったままで
全く上げようとしないのは問題かな
今後も組織参加者を増やすのかな
いいねが付かないことに悩み
オーガニゼーション(組織票)の存在に気づくのは1年以上後だろう
気づいたら参加モチベーションが下がる
不公平だからな
ほとんどのネットユーザーに認知され新規参加者がいなくなり組織に属さない人のモチベーションが下がったままで
全く上げようとしないのは問題かな
今後も組織参加者を増やすのかな
234デフォルトの名無しさん
2023/07/27(木) 12:25:26.22ID:ORsGKxw3 スクール系組織票も野放し?
235デフォルトの名無しさん
2023/07/27(木) 17:43:34.41ID:+lXodmcm ゆめみでゴミ記事書くやつは、片っ端からミュートしてるわ
236デフォルトの名無しさん
2023/07/28(金) 10:49:42.57ID:Zgvcm9f5 >>233
advent calendar ってなんなん?
advent calendar ってなんなん?
237デフォルトの名無しさん
2023/07/28(金) 12:20:44.76ID:9v9DJg3O >>205
今読んだけどこれほんま草
今読んだけどこれほんま草
238デフォルトの名無しさん
2023/08/03(木) 08:01:34.37ID:tyCIsm4X な
239デフォルトの名無しさん
2023/08/03(木) 19:59:51.90ID:JeF/zddW CとC++って低水準言語なの?
https://qiita.com/takeyoshinitta/items/a646a80f170e31a8c075
Cは低水準言語であるという与太話を広めたい人の記事。
自分はそうは思わないと断りを入れつつ自説に都合の良い記事探してきて
主張するモチベーションはどこから来るのだろう?
https://qiita.com/takeyoshinitta/items/a646a80f170e31a8c075
Cは低水準言語であるという与太話を広めたい人の記事。
自分はそうは思わないと断りを入れつつ自説に都合の良い記事探してきて
主張するモチベーションはどこから来るのだろう?
240デフォルトの名無しさん
2023/08/03(木) 20:28:59.91ID:8npqW66R インラインアセンブラが可能なC/C++/Rustは低水準記述が可能な言語
241デフォルトの名無しさん
2023/08/03(木) 21:01:12.75ID:MT8wuS4o >>239
「犬が人を噛んでもニュースにならないが、人が犬を噛んだらニュースになる」が基本
Cは低水準言語でないという論文なら論文にならないが、Cは低水準言語であるという論文なら論文になる
Cは低水準言語でないというだけなら主張するモチベーションが起きないが、Cは低水準言語であるというなら主張するモチベーションが起きる
「犬が人を噛んでもニュースにならないが、人が犬を噛んだらニュースになる」が基本
Cは低水準言語でないという論文なら論文にならないが、Cは低水準言語であるという論文なら論文になる
Cは低水準言語でないというだけなら主張するモチベーションが起きないが、Cは低水準言語であるというなら主張するモチベーションが起きる
242デフォルトの名無しさん
2023/08/04(金) 00:34:27.45ID:AtJZBxCM んちゃ
243デフォルトの名無しさん
2023/08/04(金) 09:05:52.31ID:XLfSEGlw そもそも低水準は誤訳
低レイヤと考える方がしっくりくる
低レイヤと考える方がしっくりくる
244デフォルトの名無しさん
2023/08/04(金) 21:08:44.67ID:zB3gh1Xb >>239
消えてるが
消えてるが
245デフォルトの名無しさん
2023/08/04(金) 22:33:31.82ID:kIOCwZVw https://megalodon.jp/2023-0804-1704-11/https://qiita.com:443/takeyoshinitta/items/a646a80f170e31a8c075
> 私としてはこのムーブメントが拡大されCが段々と当たり前のように低水準として
> 扱われていることついて例をいくつか紹介し将来的にどうなるのかを含め議論を
> したいと思って投稿したつもりでCが低水準か高水準についてしっかりと議論
> したかったわけではないのですが、このような投稿は初めてでしたので、うまく
> 伝えることができなかったのだと反省しております。
> 私の投稿に対しての誤解を閲覧者が生んでしまうのは申し訳ないのですが、急に
> 投稿を削除してしまうのもこれまでコメントされた方に失礼だと思いますので、
> しばらく時間をおいてから本日中に投稿は削除させていただきます。
うまく伝わらなかったのなら議論重ねりゃいいだけだし削除する言い訳にもなってない罠。
要は旗色悪いから逃げたんだろう。
> 私としてはこのムーブメントが拡大されCが段々と当たり前のように低水準として
> 扱われていることついて例をいくつか紹介し将来的にどうなるのかを含め議論を
> したいと思って投稿したつもりでCが低水準か高水準についてしっかりと議論
> したかったわけではないのですが、このような投稿は初めてでしたので、うまく
> 伝えることができなかったのだと反省しております。
> 私の投稿に対しての誤解を閲覧者が生んでしまうのは申し訳ないのですが、急に
> 投稿を削除してしまうのもこれまでコメントされた方に失礼だと思いますので、
> しばらく時間をおいてから本日中に投稿は削除させていただきます。
うまく伝わらなかったのなら議論重ねりゃいいだけだし削除する言い訳にもなってない罠。
要は旗色悪いから逃げたんだろう。
246デフォルトの名無しさん
2023/08/04(金) 22:34:10.96ID:vnzxSr9F 消えてるからなんだよ
webアーカイブでも探せばいいだろ
webアーカイブでも探せばいいだろ
247デフォルトの名無しさん
2023/08/04(金) 22:38:44.38ID:kIOCwZVw しっかしコメントしてきた相手に対して長いコメント返してるなあ、例外なく。
負けん気の強さは人一倍だが本人の知識や能力が追い付いてない感じw
負けん気の強さは人一倍だが本人の知識や能力が追い付いてない感じw
248デフォルトの名無しさん
2023/08/05(土) 07:04:06.19ID:GPQId3vN このスレに貼り付けた人もそうだが削除させる意図があるように見える
削除させなくてもいいんじゃない?
もしかしたら削除させる意図がないと言うかもしれないが
もしそうなら言い方を気をつけるべきだね
削除させる意図があるように見えるから
削除させなくてもいいんじゃない?
もしかしたら削除させる意図がないと言うかもしれないが
もしそうなら言い方を気をつけるべきだね
削除させる意図があるように見えるから
249デフォルトの名無しさん
2023/08/05(土) 07:26:06.29ID:MfBtPlYk250デフォルトの名無しさん
2023/08/05(土) 07:26:57.96ID:nczC8/3G >>246
Zuishinいいこと言うなー
Zuishinいいこと言うなー
251デフォルトの名無しさん
2023/08/05(土) 10:09:31.04ID:BuM8hDNP 削除は本人の判断だけど
> それにしてもCが低水準言語であると思っている人の数が圧倒的に多くそのような記事が当たり前のようにあるので驚いたところです。
とまで書いてた本人が記事を削除する意図が分からんのよね。
> それにしてもCが低水準言語であると思っている人の数が圧倒的に多くそのような記事が当たり前のようにあるので驚いたところです。
とまで書いてた本人が記事を削除する意図が分からんのよね。
252デフォルトの名無しさん
2023/08/05(土) 13:04:09.35ID:G0xPWQV0 低水準の意味を間違って捉えてるんだろ
ハッカーと同じ
ハッカーと同じ
253デフォルトの名無しさん
2023/08/08(火) 19:36:07.20ID:bRo0TWoK C言語における「bool型へのキャスト」が無限の(悪用)可能性を秘めている理由
https://webcache.googleusercontent.com/search?q=cache:ED5C8TAFrNYJ:https://qiita.com/wantun/items/4574049283e1cd7d50cf
程度低い記事だなあ、これはツッコまれるの不可避だわと思っていたら消えていた。
https://webcache.googleusercontent.com/search?q=cache:ED5C8TAFrNYJ:https://qiita.com/wantun/items/4574049283e1cd7d50cf
程度低い記事だなあ、これはツッコまれるの不可避だわと思っていたら消えていた。
254デフォルトの名無しさん
2023/08/08(火) 19:38:50.29ID:bRo0TWoK 「いいね」も付いてたし指摘された誤りは修正すれば消さんでも良かったんじゃないのとは思う。
己に対して完璧以外許さない性格かな。
己に対して完璧以外許さない性格かな。
255デフォルトの名無しさん
2023/08/10(木) 10:14:42.42ID:P5HupFIS 誤り以前にboolに変換して掛け算するのはどうなのよ
256デフォルトの名無しさん
2023/08/10(木) 10:17:08.67ID:P5HupFIS C言語ならまだギリギリ許されることもあるけどセマンティクス的に汚いし他の言語だとNGだから積極的に学ぶ方法でもない
読みにくくなるだけでなくコーディング量もそれほど変わらない上に速度すら落ちてるから
読みにくくなるだけでなくコーディング量もそれほど変わらない上に速度すら落ちてるから
257デフォルトの名無しさん
2023/08/10(木) 10:19:04.97ID:P5HupFIS あとデータが1と0に限定されるから拡張性にも欠ける
後で2を使いたくなった時に全コード見直す必要が出てくる
後で2を使いたくなった時に全コード見直す必要が出てくる
258デフォルトの名無しさん
2023/08/10(木) 14:12:42.71ID:UgpRJI2F キャスト使えばこういう悪事もできるよ(良い子は真似しないでね)という記事なんだから、掛け算以外の指摘に関しては論点ではない
259デフォルトの名無しさん
2023/08/10(木) 14:15:03.93ID:4HGAEGv7 C言語だと別に悪事というほどではない
ひたすら汚いだけ
ひたすら汚いだけ
260デフォルトの名無しさん
2023/08/10(木) 16:12:44.88ID:RFVZcdoC >>253
考え自体は正しい
条件分岐はパイプラインを乱す
条件分岐とならないコードが生成されることが望ましい
しかし多くのケースではコンパイラのコード生成に任せることができる
今回のケースならばif文のままでも条件ムーブ(CMOVcc)命令などが生成され条件分岐とならないだろう
ソースコードの可読性からもif文のままが好ましい
ただしもっと複雑なケースで複数の条件分岐をなくして演算のみにできる場合もある
そしてコンパイラ任せではそのようなコード生成が無理な場合もある
その場合はベンチ測定比較すれば有意な差が出るためそれは正しい判断となる
考え自体は正しい
条件分岐はパイプラインを乱す
条件分岐とならないコードが生成されることが望ましい
しかし多くのケースではコンパイラのコード生成に任せることができる
今回のケースならばif文のままでも条件ムーブ(CMOVcc)命令などが生成され条件分岐とならないだろう
ソースコードの可読性からもif文のままが好ましい
ただしもっと複雑なケースで複数の条件分岐をなくして演算のみにできる場合もある
そしてコンパイラ任せではそのようなコード生成が無理な場合もある
その場合はベンチ測定比較すれば有意な差が出るためそれは正しい判断となる
261デフォルトの名無しさん
2023/08/10(木) 19:42:46.48ID:c2H9n5TK > しかし多くのケースではコンパイラのコード生成に任せることができる
> 今回のケースならばif文のままでも条件ムーブ(CMOVcc)命令などが生成され条件分岐とならないだろう
> ソースコードの可読性からもif文のままが好ましい
なにやら知ったようなことを言ってるので検証してみるとするか。
> 今回のケースならばif文のままでも条件ムーブ(CMOVcc)命令などが生成され条件分岐とならないだろう
> ソースコードの可読性からもif文のままが好ましい
なにやら知ったようなことを言ってるので検証してみるとするか。
262デフォルトの名無しさん
2023/08/10(木) 19:43:13.35ID:c2H9n5TK void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
if (num[i] == deleteNum) { //deleteNumで指定した要素を0にする
num[i] = 0;
}
}
}
gcc 13.2 最適化オプション-O2でコンパイル
hoge:
testl %edi, %edi
jle .L1
movslq %edi, %rdi
leaq (%rsi,%rdi,4), %rax
.L4:
cmpl %edx, (%rsi)
jne .L3
movl $0, (%rsi)
.L3:
addq $4, %rsi
cmpq %rax, %rsi
jne .L4
.L1:
ret
https://godbolt.org/z/noxvcGbff
条件分岐するじゃんw
{
for (int i = 0; i < n; i++) {
if (num[i] == deleteNum) { //deleteNumで指定した要素を0にする
num[i] = 0;
}
}
}
gcc 13.2 最適化オプション-O2でコンパイル
hoge:
testl %edi, %edi
jle .L1
movslq %edi, %rdi
leaq (%rsi,%rdi,4), %rax
.L4:
cmpl %edx, (%rsi)
jne .L3
movl $0, (%rsi)
.L3:
addq $4, %rsi
cmpq %rax, %rsi
jne .L4
.L1:
ret
https://godbolt.org/z/noxvcGbff
条件分岐するじゃんw
263デフォルトの名無しさん
2023/08/10(木) 19:46:00.32ID:c2H9n5TK 記事の計算による方法
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
for (int i = 0; i < 6; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
}
hoge: xorl %r11d, %r11d
leaq 24(%rsi), %r10
xorl %r9d, %r9d
testl %edi, %edi
jle .L9
.L2: movq %rsi, %rax
.L4: movl (%rax), %ecx
movl %r9d, %r8d
cmpl %edx, %ecx
cmove %edx, %r8d
addq $4, %rax
subl %r8d, %ecx
movl %ecx, -4(%rax)
cmpq %r10, %rax
jne .L4
addl $1, %r11d
cmpl %r11d, %edi
jne .L2
ret
.L9: ret
https://godbolt.org/z/do55an9P9
cmov命令吐いてる
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
for (int i = 0; i < 6; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
}
hoge: xorl %r11d, %r11d
leaq 24(%rsi), %r10
xorl %r9d, %r9d
testl %edi, %edi
jle .L9
.L2: movq %rsi, %rax
.L4: movl (%rax), %ecx
movl %r9d, %r8d
cmpl %edx, %ecx
cmove %edx, %r8d
addq $4, %rax
subl %r8d, %ecx
movl %ecx, -4(%rax)
cmpq %r10, %rax
jne .L4
addl $1, %r11d
cmpl %r11d, %edi
jne .L2
ret
.L9: ret
https://godbolt.org/z/do55an9P9
cmov命令吐いてる
264デフォルトの名無しさん
2023/08/10(木) 19:47:40.53ID:c2H9n5TK ちなみに計算による方法でもこう書くと2行短くなった
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
for (int i = 0; i < 6; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
}
hoge: xorl %r10d, %r10d
leaq 24(%rsi), %r9
xorl %r8d, %r8d
testl %edi, %edi
jle .L9
.L2: movq %rsi, %rax
.L4: movl (%rax), %ecx
cmpl %edx, %ecx
cmove %r8d, %ecx
addq $4, %rax
movl %ecx, -4(%rax)
cmpq %r9, %rax
jne .L4
addl $1, %r10d
cmpl %r10d, %edi
jne .L2
ret
.L9: ret
https://godbolt.org/z/ro1qj98MG
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
for (int i = 0; i < 6; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
}
hoge: xorl %r10d, %r10d
leaq 24(%rsi), %r9
xorl %r8d, %r8d
testl %edi, %edi
jle .L9
.L2: movq %rsi, %rax
.L4: movl (%rax), %ecx
cmpl %edx, %ecx
cmove %r8d, %ecx
addq $4, %rax
movl %ecx, -4(%rax)
cmpq %r9, %rax
jne .L4
addl $1, %r10d
cmpl %r10d, %edi
jne .L2
ret
.L9: ret
https://godbolt.org/z/ro1qj98MG
265デフォルトの名無しさん
2023/08/10(木) 19:51:41.79ID:UyoKACkM したがって>>253の記事は全面的に正しい
bool値を数値演算として使うことを積極的に推奨する
bool値を数値演算として使うことを積極的に推奨する
266デフォルトの名無しさん
2023/08/10(木) 19:57:21.15ID:c2H9n5TK267デフォルトの名無しさん
2023/08/10(木) 20:01:44.72ID:s1ImWQTP >>256
数学に出てくるクロネッカーのデルタみたいなもので汚くはないし、型に厳しい言語でなければ他の言語でも使えるだろ。
数学に出てくるクロネッカーのデルタみたいなもので汚くはないし、型に厳しい言語でなければ他の言語でも使えるだろ。
268デフォルトの名無しさん
2023/08/10(木) 20:21:25.47ID:c2H9n5TK >>263訂正
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < 6; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
hoge:
leaq 24(%rsi), %r8
xorl %edi, %edi
.L2:
movl (%rsi), %eax
movl %edi, %ecx
cmpl %edx, %eax
cmove %edx, %ecx
addq $4, %rsi
subl %ecx, %eax
movl %eax, -4(%rsi)
cmpq %rsi, %r8
jne .L2
ret
https://godbolt.org/z/br4nPfcEa
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < 6; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
hoge:
leaq 24(%rsi), %r8
xorl %edi, %edi
.L2:
movl (%rsi), %eax
movl %edi, %ecx
cmpl %edx, %eax
cmove %edx, %ecx
addq $4, %rsi
subl %ecx, %eax
movl %eax, -4(%rsi)
cmpq %rsi, %r8
jne .L2
ret
https://godbolt.org/z/br4nPfcEa
269デフォルトの名無しさん
2023/08/10(木) 20:22:14.91ID:c2H9n5TK >>264も訂正
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < 6; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
hoge:
leaq 24(%rsi), %rdi
xorl %ecx, %ecx
.L2:
movl (%rsi), %eax
cmpl %edx, %eax
cmove %ecx, %eax
addq $4, %rsi
movl %eax, -4(%rsi)
cmpq %rdi, %rsi
jne .L2
ret
https://godbolt.org/z/7xhMr6oae
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < 6; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
hoge:
leaq 24(%rsi), %rdi
xorl %ecx, %ecx
.L2:
movl (%rsi), %eax
cmpl %edx, %eax
cmove %ecx, %eax
addq $4, %rsi
movl %eax, -4(%rsi)
cmpq %rdi, %rsi
jne .L2
ret
https://godbolt.org/z/7xhMr6oae
270デフォルトの名無しさん
2023/08/10(木) 20:25:05.76ID:c2H9n5TK すまん>>263再度訂正
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
hoge:
testl %edi, %edi
jle .L1
movslq %edi, %rdi
leaq (%rsi,%rdi,4), %r8
xorl %edi, %edi
.L3:
movl (%rsi), %eax
movl %edi, %ecx
cmpl %edx, %eax
cmove %edx, %ecx
addq $4, %rsi
subl %ecx, %eax
movl %eax, -4(%rsi)
cmpq %rsi, %r8
jne .L3
.L1:
ret
https://godbolt.org/z/9K6dj7Goc
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
hoge:
testl %edi, %edi
jle .L1
movslq %edi, %rdi
leaq (%rsi,%rdi,4), %r8
xorl %edi, %edi
.L3:
movl (%rsi), %eax
movl %edi, %ecx
cmpl %edx, %eax
cmove %edx, %ecx
addq $4, %rsi
subl %ecx, %eax
movl %eax, -4(%rsi)
cmpq %rsi, %r8
jne .L3
.L1:
ret
https://godbolt.org/z/9K6dj7Goc
271デフォルトの名無しさん
2023/08/10(木) 20:25:56.38ID:c2H9n5TK >>264も再度訂正
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
hoge:
testl %edi, %edi
jle .L1
movslq %edi, %rdi
xorl %ecx, %ecx
leaq (%rsi,%rdi,4), %rdi
.L3:
movl (%rsi), %eax
cmpl %edx, %eax
cmove %ecx, %eax
addq $4, %rsi
movl %eax, -4(%rsi)
cmpq %rsi, %rdi
jne .L3
.L1:
ret
https://godbolt.org/z/WTTadjj5a
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
hoge:
testl %edi, %edi
jle .L1
movslq %edi, %rdi
xorl %ecx, %ecx
leaq (%rsi,%rdi,4), %rdi
.L3:
movl (%rsi), %eax
cmpl %edx, %eax
cmove %ecx, %eax
addq $4, %rsi
movl %eax, -4(%rsi)
cmpq %rsi, %rdi
jne .L3
.L1:
ret
https://godbolt.org/z/WTTadjj5a
272デフォルトの名無しさん
2023/08/10(木) 22:01:59.49ID:4Znn5xIX Rustでも同じ結果となった (diff -u 形式)
fn hoge(num_list: &mut [i32], delete_num: i32) {
for num in num_list {
- if *num == delete_num {
- *num = 0;
- }
+ *num *= (*num != delete_num) as i32;
}
}
アセンブラ出力の方はラベルと使用レジスタ名のズレだけ揃えてdiff
hoge:
test rsi, rsi
je .LBB1_4
shl rsi, 2
xor eax, eax
+ xor ecx, ecx
.LBB1_2:
- cmp dword ptr [rdi + rax], edx
- jne .LBB1_3
- mov dword ptr [rdi + rax], 0
-.LBB1_3:
+ mov r8d, dword ptr [rdi + rax]
+ cmp r8d, edx
+ cmove r8d, ecx
+ mov dword ptr [rdi + rax], r8d
add rax, 4
cmp rsi, rax
jne .LBB1_2
.LBB1_4:
ret
fn hoge(num_list: &mut [i32], delete_num: i32) {
for num in num_list {
- if *num == delete_num {
- *num = 0;
- }
+ *num *= (*num != delete_num) as i32;
}
}
アセンブラ出力の方はラベルと使用レジスタ名のズレだけ揃えてdiff
hoge:
test rsi, rsi
je .LBB1_4
shl rsi, 2
xor eax, eax
+ xor ecx, ecx
.LBB1_2:
- cmp dword ptr [rdi + rax], edx
- jne .LBB1_3
- mov dword ptr [rdi + rax], 0
-.LBB1_3:
+ mov r8d, dword ptr [rdi + rax]
+ cmp r8d, edx
+ cmove r8d, ecx
+ mov dword ptr [rdi + rax], r8d
add rax, 4
cmp rsi, rax
jne .LBB1_2
.LBB1_4:
ret
273デフォルトの名無しさん
2023/08/10(木) 22:05:03.94ID:4Znn5xIX つまりC言語もRustもどちらも同じく
if文の時は普通に条件分岐する
比較値を自己掛け算させるとcmoveを使う
生成コードで掛け算が消えてしまうのはいいね
代わりにやってることは
(1) レジスタの値にメモリから読み込む
(2) 比較
(3) 一致していた時のみレジスタに値0を入れる 【cmove】
(4) レジスタの値をメモリへ書き戻す
条件分岐がない代わりに0にしない時も常に書き込みが発生する
ただし読み込んだ位置への書き込みだから
1サイクルのみでキャッシュページミスのペナルティも無くて済むから問題なしか
一方で元の条件分岐ジャンプするコードと比較して速さはどうなの?
分岐予測ミスやパイプラインの乱れとやらがどれだけ効くのか教えて欲しい
if文の時は普通に条件分岐する
比較値を自己掛け算させるとcmoveを使う
生成コードで掛け算が消えてしまうのはいいね
代わりにやってることは
(1) レジスタの値にメモリから読み込む
(2) 比較
(3) 一致していた時のみレジスタに値0を入れる 【cmove】
(4) レジスタの値をメモリへ書き戻す
条件分岐がない代わりに0にしない時も常に書き込みが発生する
ただし読み込んだ位置への書き込みだから
1サイクルのみでキャッシュページミスのペナルティも無くて済むから問題なしか
一方で元の条件分岐ジャンプするコードと比較して速さはどうなの?
分岐予測ミスやパイプラインの乱れとやらがどれだけ効くのか教えて欲しい
274デフォルトの名無しさん
2023/08/10(木) 22:05:48.11ID:MwGz91pK 何度訂正されても暑さでやられたやつが発狂してるようにしか見えんからもういいぞ
どうしても主張したいなら記事書けよ
どうしても主張したいなら記事書けよ
275デフォルトの名無しさん
2023/08/10(木) 22:36:14.41ID:4Znn5xIX 訂正してる人はコピペミスか実験かどちらかで二重ループになってしまったのを訂正してるっぽいけどよくわからん
アドバイスできることは
clangの方で-O2だとベクタ展開して比較わかりにくくなってるのを
-Os指定すれば展開がなくなりgccとほぼ同じコードになるよ
アドバイスできることは
clangの方で-O2だとベクタ展開して比較わかりにくくなってるのを
-Os指定すれば展開がなくなりgccとほぼ同じコードになるよ
276デフォルトの名無しさん
2023/08/11(金) 06:16:54.95ID:YfwUjgK1277デフォルトの名無しさん
2023/08/11(金) 08:15:21.50ID:jaK9CZIt if文を使ったコードと使わないコードの2種類が示されている状況で
何と何を比較しているのかわからないのは深刻な脳のバグだよw
何と何を比較しているのかわからないのは深刻な脳のバグだよw
278デフォルトの名無しさん
2023/08/11(金) 08:34:14.26ID:YfwUjgK1279デフォルトの名無しさん
2023/08/11(金) 08:59:40.37ID:WAWJg8ep 発狂してる俺様のレスを追いかけて全部読めとかいう頭のバグったやつ
280デフォルトの名無しさん
2023/08/11(金) 09:03:31.51ID:YfwUjgK1 本人が気づいてない可能性があるからボランティアで教えてあげている
君の文章では他の人間は全く理解できないと
そもそも自分と他人を区別できてるのかなw
君の文章では他の人間は全く理解できないと
そもそも自分と他人を区別できてるのかなw
281デフォルトの名無しさん
2023/08/11(金) 09:09:23.31ID:Y8RASnRQ Cの人のレスは複数に分かれて訂正もあって二つの比較がわかりにくいけど
Rustの人のレス>>272はdiff形式で一つのレスに書かれているから何と何を比較しているか一目瞭然でしょ
Rustの人のレス>>272はdiff形式で一つのレスに書かれているから何と何を比較しているか一目瞭然でしょ
282デフォルトの名無しさん
2023/08/11(金) 09:26:13.77ID:sVlBLJlv RustとRubyとMAUIをNGしてるやつは多いと思う
283デフォルトの名無しさん
2023/08/11(金) 09:34:13.85ID:YXKl/G3F 単語NG設定してるやつがそいつだけ重要なレスを読めていないことが原因で勘違いな書き込みを繰り返すパターンはよくあるよな
しかし今回のアホな>>276はNGしていないからレスしてるわけで単なるアホなパターンかと
しかし今回のアホな>>276はNGしていないからレスしてるわけで単なるアホなパターンかと
284デフォルトの名無しさん
2023/08/11(金) 15:23:23.45ID:Dz1zKJwc void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
if (num[i] == deleteNum) { // deleteNumで指定した要素を0にする
num[i] = 0;
}
}
}
void piyo(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
void hogera(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
↑を
{
for (int i = 0; i < n; i++) {
if (num[i] == deleteNum) { // deleteNumで指定した要素を0にする
num[i] = 0;
}
}
}
void piyo(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
void hogera(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
↑を
285デフォルトの名無しさん
2023/08/11(金) 15:24:31.74ID:Dz1zKJwc #include <stdio.h>
#include <stdlib.h>
#include <time.h>
void __attribute__((noinline)) bench(const char* name, void (*func)(int, int[], int))
{
const int n = 100000000;
int* a = calloc(n, sizeof(int));
if (a) {
for (int i = 0; i < n; i++) {
a[i] = rand() % 2;
}
clock_t s = clock();
func(n, a, 0);
double t = (double)(clock() - s) / CLOCKS_PER_SEC;
printf("%s:\t%f\n", name, t);
free(a);
}
}
int main(void)
{
bench("hoge", hoge);
bench("piyo", piyo);
bench("hogera", hogera);
}
↑で測定した。
#include <stdlib.h>
#include <time.h>
void __attribute__((noinline)) bench(const char* name, void (*func)(int, int[], int))
{
const int n = 100000000;
int* a = calloc(n, sizeof(int));
if (a) {
for (int i = 0; i < n; i++) {
a[i] = rand() % 2;
}
clock_t s = clock();
func(n, a, 0);
double t = (double)(clock() - s) / CLOCKS_PER_SEC;
printf("%s:\t%f\n", name, t);
free(a);
}
}
int main(void)
{
bench("hoge", hoge);
bench("piyo", piyo);
bench("hogera", hogera);
}
↑で測定した。
286デフォルトの名無しさん
2023/08/11(金) 15:29:01.99ID:Dz1zKJwc gcc 12.2.0に-O2を指定
hoge: 0.279982
piyo: 0.059988
hogera: 0.051996
https://wandbox.org/permlink/cLGAj1OcfqmjdJeZ
clang 15.0.7に-O2を指定
hoge: 0.283996
piyo: 0.036019
hogera: 0.028001
https://wandbox.org/permlink/jEA3G3XMSKeCUKbZ
clang 15.0.7に-O2 -march=nativeを指定
hoge: 0.028001
piyo: 0.028001
hogera: 0.027980
https://wandbox.org/permlink/cMJSCT2nnvyhpSpD
hoge: 0.279982
piyo: 0.059988
hogera: 0.051996
https://wandbox.org/permlink/cLGAj1OcfqmjdJeZ
clang 15.0.7に-O2を指定
hoge: 0.283996
piyo: 0.036019
hogera: 0.028001
https://wandbox.org/permlink/jEA3G3XMSKeCUKbZ
clang 15.0.7に-O2 -march=nativeを指定
hoge: 0.028001
piyo: 0.028001
hogera: 0.027980
https://wandbox.org/permlink/cMJSCT2nnvyhpSpD
287デフォルトの名無しさん
2023/08/11(金) 15:40:51.42ID:Dz1zKJwc gccとclangの両方で最適化指示に-O2だけを指定した場合にhogeの結果が極端に悪いのは
・条件分岐命令が生成されている
・配列の内容をrand()で生成しているため分岐予測が外れまくる
ことが原因と思われる。
clangに-O2 -march=nativeを指定した場合にhogeの結果が他と変わらなくなったのは恐らくはAVX命令が使用され条件分岐がなくなったため。
試しに-O2 -mavx2を指定しても
hoge: 0.028001
piyo: 0.028002
hogera: 0.028002
https://wandbox.org/permlink/XqiQgGEs1BZJmpmp
変わらない結果となった。
・条件分岐命令が生成されている
・配列の内容をrand()で生成しているため分岐予測が外れまくる
ことが原因と思われる。
clangに-O2 -march=nativeを指定した場合にhogeの結果が他と変わらなくなったのは恐らくはAVX命令が使用され条件分岐がなくなったため。
試しに-O2 -mavx2を指定しても
hoge: 0.028001
piyo: 0.028002
hogera: 0.028002
https://wandbox.org/permlink/XqiQgGEs1BZJmpmp
変わらない結果となった。
288デフォルトの名無しさん
2023/08/11(金) 15:42:39.23ID:k/CU0rlR 別スレ立ててそこでやって
リンク貼っていいから
Qiitaと関係なくてスレチだし
元の記事はQiitaから削除されて存在しない
1つのテーマを掘り下げる目的がありそうだし
長くなりそう
リンク貼っていいから
Qiitaと関係なくてスレチだし
元の記事はQiitaから削除されて存在しない
1つのテーマを掘り下げる目的がありそうだし
長くなりそう
289デフォルトの名無しさん
2023/08/11(金) 22:03:23.82ID:n9doW6N2290デフォルトの名無しさん
2023/08/12(土) 02:16:01.85ID:MQtFcy0V 「なんでそんな書き方するの?」
「こっちのが速いから」
「へー、どれくらい?」
「100万回実行して数msかな」
「でもここ数回しか実行されないよ?」
「こっちのが速いから」
「へー、どれくらい?」
「100万回実行して数msかな」
「でもここ数回しか実行されないよ?」
291デフォルトの名無しさん
2023/08/12(土) 10:23:43.34ID:BDIecCFX 長々と空気読めないこと喋るやつおるよな
292デフォルトの名無しさん
2023/08/12(土) 10:28:09.42ID:w3tn+9YE >>289
if文を無くせる場合はどんな場合がある?
ifがあるなら無くせないんじゃないの?
その場合を見つけたとしてこのスレで発表する?
それともこのスレを出典にする?
このスレにリンクを貼らないとif文を使うと10倍遅くなることを証明できないから
if文を無くせる場合はどんな場合がある?
ifがあるなら無くせないんじゃないの?
その場合を見つけたとしてこのスレで発表する?
それともこのスレを出典にする?
このスレにリンクを貼らないとif文を使うと10倍遅くなることを証明できないから
293デフォルトの名無しさん
2023/08/12(土) 12:27:02.41ID:kvrjqk0I 常にこんな書き方をするべきとかではなくてスループットを上げたい場合に考えられる手段の一つ、くらいの話だと思うんだが顔真っ赤にして否定してる奴なんなの
294デフォルトの名無しさん
2023/08/12(土) 13:09:09.17ID:VjFL1AwM 処理系やプロセッサ依存のソースを書く時代は終わったんだよ顔真っ赤なおじいちゃん
何度も言われてるようにここじゃなくQiitaに記事書きなよw
何度も言われてるようにここじゃなくQiitaに記事書きなよw
295デフォルトの名無しさん
2023/08/12(土) 13:13:42.09ID:kvrjqk0I > 処理系やプロセッサ依存のソースを書く時代は終わったんだよ
組み込みとか念頭にない人は世の中が単純に見えて幸せそうですね。
組み込みとか念頭にない人は世の中が単純に見えて幸せそうですね。
296デフォルトの名無しさん
2023/08/12(土) 14:21:39.40ID:VjFL1AwM 組み込みの現場も知らない癖に何をイキッてるんだ無職くんはw
いいから記事を書きなよ
そしたらここで話題にしてもいいからさ
スレ違いってわかる?
いいから記事を書きなよ
そしたらここで話題にしてもいいからさ
スレ違いってわかる?
297デフォルトの名無しさん
2023/08/12(土) 16:29:25.06ID:QkMalqzA298デフォルトの名無しさん
2023/08/12(土) 16:53:18.46ID:wD60IGH3299デフォルトの名無しさん
2023/08/12(土) 16:55:33.58ID:dxjaE8PG プロセッサに依存していいならどう最適化されるか決まってないCよりアセンブラ使う方が確実だぞ
300デフォルトの名無しさん
2023/08/12(土) 17:42:26.72ID:LEE4+Uqf 終わった記事に関してウダウダと
そんなんだからいつまで経っても独り身なんだぞ
そんなんだからいつまで経っても独り身なんだぞ
301デフォルトの名無しさん
2023/08/12(土) 17:51:13.60ID:yNBhBfdR >>299
CMOV命令はintelにもamdにもあるから一般的な環境でプロセッサ依存ではないですよね
もしCMOVがない特殊な環境でも条件フラグをレジスタに入れる命令があればそれが使われて大丈夫ですね
gccとclangどちらでも速くなったようだからコンパイラ処理系依存のテクニックではなさそう
C言語だけでなくRustでも同じ生成コードとなったから言語に依存したテクニックでもなさそう
CMOV命令はintelにもamdにもあるから一般的な環境でプロセッサ依存ではないですよね
もしCMOVがない特殊な環境でも条件フラグをレジスタに入れる命令があればそれが使われて大丈夫ですね
gccとclangどちらでも速くなったようだからコンパイラ処理系依存のテクニックではなさそう
C言語だけでなくRustでも同じ生成コードとなったから言語に依存したテクニックでもなさそう
302デフォルトの名無しさん
2023/08/12(土) 18:39:13.58ID:mEHRZZZJ >>298
> if文を無くせる場合があるというのが253の記事
記事にあるif文を無くせる場合はこれ1つだけ
if (num==1) { num=0 } else { num=1 }
↓
num = !(bool)num
他の読者のために書いてあげる
機会が非常に少なくて残念!!
レスの後半部分は間違ってる
> if文を無くせる場合があるというのが253の記事
記事にあるif文を無くせる場合はこれ1つだけ
if (num==1) { num=0 } else { num=1 }
↓
num = !(bool)num
他の読者のために書いてあげる
機会が非常に少なくて残念!!
レスの後半部分は間違ってる
303デフォルトの名無しさん
2023/08/12(土) 18:45:47.87ID:mEHRZZZJ if文の高速化が検索したら
ifとswitchで迷ったらswitchを使う
IF K=6 THEN X=X+1→X=X-(K=6)
が出てきてif文の高速化は有名な話だったようだ
補足訂正
ifとswitchで迷ったらswitchを使う
IF K=6 THEN X=X+1→X=X-(K=6)
が出てきてif文の高速化は有名な話だったようだ
補足訂正
304デフォルトの名無しさん
2023/08/12(土) 19:08:27.81ID:dqIchbhY >>302
プログラムも読めないのか
そんなバカが必死に否定してたのか
記事以外にもこのスレで他のコード例やコンパイラによるその生成アセンブラも出ている
さらにベンチマーク比較で大きく速度向上まで結果が出ている
この状況で必死に否定し続けるのはみっともないぜ
プログラムも読めないのか
そんなバカが必死に否定してたのか
記事以外にもこのスレで他のコード例やコンパイラによるその生成アセンブラも出ている
さらにベンチマーク比較で大きく速度向上まで結果が出ている
この状況で必死に否定し続けるのはみっともないぜ
305デフォルトの名無しさん
2023/08/12(土) 22:28:25.82ID:TiqzNocE >>301
組み込みの意味がわからない人?w
組み込みの意味がわからない人?w
306デフォルトの名無しさん
2023/08/12(土) 23:03:51.71ID:dqIchbhY 記事読んでも組み込みなんて限定はないな
必死に否定してるバカが勝手に組み込みの話と思い込んでいるのか
必死に否定してるバカが勝手に組み込みの話と思い込んでいるのか
307デフォルトの名無しさん
2023/08/13(日) 00:15:07.75ID:NKbs7DmP なんでそんなに必死なのか知らんけどここまで言われても記事を書こうとしないのは自分が間違ってることを薄々でもわかってるんだろ?w
無理すんな無職
無理すんな無職
308デフォルトの名無しさん
2023/08/13(日) 01:15:32.46ID:qIH8AICq309デフォルトの名無しさん
2023/08/13(日) 10:23:41.63ID:427/I8XL > 記事を書こうとしないのは
日本の技術力の底上げのために
検索結果の健全化のために
クソ記事書くのはもうやめてクレメンス
お願いですから書くのやめてクレメンス
書かないことでみんなが助かる
書かないことでみんなが嬉しい
わかってクレメンス
クソ記事書いてはいけないと
正常な人間ははじめから知っているんです
日本の技術力の底上げのために
検索結果の健全化のために
クソ記事書くのはもうやめてクレメンス
お願いですから書くのやめてクレメンス
書かないことでみんなが助かる
書かないことでみんなが嬉しい
わかってクレメンス
クソ記事書いてはいけないと
正常な人間ははじめから知っているんです
310デフォルトの名無しさん
2023/08/13(日) 10:23:43.05ID:ea9tHaSQ 逃げたw
311デフォルトの名無しさん
2023/08/13(日) 12:06:02.55ID:mxfdwtiA クソ記事は批判して良いと思うが
クソ記事に対する批判がみんなのためになるのなら賛成
ただ暇でやってるだけならもうちょっと時間を有効に使えと言いたい
クソ記事に対する批判がみんなのためになるのなら賛成
ただ暇でやってるだけならもうちょっと時間を有効に使えと言いたい
312デフォルトの名無しさん
2023/08/13(日) 13:52:34.26ID:bmBefS74 if文をなくすのが高速化に繋がってると解釈してる人がいるようなので補足。
>>286の投稿でhogeの結果が極端に悪いのは条件分岐命令が生成されていることが原因だが条件分岐命令が生成されているのはif文を使用しているからではない。条件によってメモリへの書き込みが行われたり行われなかったりするロジックのためである。
試しにhoge()の実装を
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
int x = num[i];
if (x == deleteNum) { // deleteNumで指定した要素を0にする
x = 0;
}
num[i] = x;
}
}
内容が変わろうが変わるまいが常にメモリへの書き込みが行われるよう変更したらどうなるか。
>>286の投稿でhogeの結果が極端に悪いのは条件分岐命令が生成されていることが原因だが条件分岐命令が生成されているのはif文を使用しているからではない。条件によってメモリへの書き込みが行われたり行われなかったりするロジックのためである。
試しにhoge()の実装を
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
int x = num[i];
if (x == deleteNum) { // deleteNumで指定した要素を0にする
x = 0;
}
num[i] = x;
}
}
内容が変わろうが変わるまいが常にメモリへの書き込みが行われるよう変更したらどうなるか。
313デフォルトの名無しさん
2023/08/13(日) 13:57:12.40ID:bmBefS74 gcc 12.2.0に-O2を指定
hoge: 0.044001
piyo: 0.060001
hogera: 0.052001
https://wandbox.org/permlink/Na7RxYGEttdpuCnR
clang 15.0.7に-O2を指定
hoge: 0.032001
piyo: 0.032002
hogera: 0.031992
https://wandbox.org/permlink/1FZCQD2WsnbvifWw
hoge()の実行時間はpiyo()やhogera()と大差なくなる。
if文の使用がhoge()が遅かった原因ではない。
hoge: 0.044001
piyo: 0.060001
hogera: 0.052001
https://wandbox.org/permlink/Na7RxYGEttdpuCnR
clang 15.0.7に-O2を指定
hoge: 0.032001
piyo: 0.032002
hogera: 0.031992
https://wandbox.org/permlink/1FZCQD2WsnbvifWw
hoge()の実行時間はpiyo()やhogera()と大差なくなる。
if文の使用がhoge()が遅かった原因ではない。
314デフォルトの名無しさん
2023/08/13(日) 14:09:26.02ID:aL79QjVh Qiitaアカウント持ってないからここでウダウダコメントするしかない雑魚w
315デフォルトの名無しさん
2023/08/13(日) 14:28:13.37ID:xVDxBOfX316デフォルトの名無しさん
2023/08/13(日) 14:59:12.83ID:427/I8XL > Qiitaアカウント持ってない
つまりそれは
正常な思考力を持ってるってこと
つまりそれは
正常な思考力を持ってるってこと
317デフォルトの名無しさん
2023/08/13(日) 16:34:36.74ID:Z5uDnRRN Qiitaに日記を書くんじゃない
318デフォルトの名無しさん
2023/08/13(日) 16:43:33.83ID:Z5uDnRRN319デフォルトの名無しさん
2023/08/13(日) 16:56:52.28ID:427/I8XL > 不愉快
彼らに不愉快という概念はないぞ
クソを食い
クソを出し
周囲をクソまみれにしても
そのとき
むしろ笑顔だから
彼らに不愉快という概念はないぞ
クソを食い
クソを出し
周囲をクソまみれにしても
そのとき
むしろ笑顔だから
320デフォルトの名無しさん
2023/08/14(月) 05:02:03.98ID:flQ8vQku >>315
以前「キモッ」だけのコメントをQiitaでしたことあるが、運営から「削除しろ。しなければ垢バンまである」というメールがきたw
以前「キモッ」だけのコメントをQiitaでしたことあるが、運営から「削除しろ。しなければ垢バンまである」というメールがきたw
321デフォルトの名無しさん
2023/08/14(月) 10:45:24.67ID:5M9frLMH >>320
草
草
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- とらせん IPあり
- 巨専】
- こいせん 全レス転載禁止
- 【DAZN】ワールドカップ欧州予選総合 ★5
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- 【ATP】テニス総合実況スレ2025 Part 211【WTA】
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 自閉症が「んなっしょい」と連呼するお🏡
- 【悲報】大分市佐賀関の火事、20軒→170軒に延焼🔥 [481941988]
- 両手でフレミングの法則やってくれ [577451214]
- 日本人の海外旅行したきのマナーよくなったのはいつから
- へそグリグリ
