Maison > Article > développement back-end > PHP développe le plus efficacement un entier positif mille fois
.
Mais lorsque ce problème est confié aux programmeurs pour qu'ils le résolvent avec du code, le problème doit être considéré du point de vue de la programmation. Le premier plan auquel j'ai pensé comme était phper
!正整数 X 1024 - 正整数 X 24
, Gardez accumulant jusqu'à ce que vous atteigniez 1000 fois l'entier positif. L'opération 正整数 X 512 + 正整数 X 256 + 正整数 X 128 + 正整数 X 128 + 正整数 X 64 + 正整数 X 32 + 正整数 X 8
s'approche du résultat plus rapidement que cette chaîne de signes plus. 2的10次方
Tutoriel vidéo PHP]
// 图表内容 $headers = ['次数', '方案1:拼接法', '方案2:乘1000', '方案3:乘以 1024']; $data = [ [0=>'第一次'], [0=>'第二次'], [0=>'第三次'] ]; // 每个方法执行三次 for ($count = 0; $count < 3; $count ++) { // 生成变量名 : plan1start1 $start = Carbon::now()->getPreciseTimestamp(); for ($i = 0; $i < 10000000; $i ++) { $integer = rand(1, 999); $result = (int)($integer . '000'); } $end = Carbon::now()->getPreciseTimestamp(); $data[$count][] = ($end - $start)/1000000 . '秒'; } for ($count = 0; $count < 3; $count ++) { $start = Carbon::now()->getPreciseTimestamp(); for ($i = 0; $i < 10000000; $i ++) { $integer = rand(1, 999); $result = $integer * 1000; } $end = Carbon::now()->getPreciseTimestamp(); $data[$count][] = ($end - $start)/1000000 . '秒'; } for ($count = 0; $count < 3; $count ++) { $start = Carbon::now()->getPreciseTimestamp(); for ($i = 0; $i < 10000000; $i ++) { $integer = rand(1, 999); $result = $integer * 1024 - $integer * 24; } $end = Carbon::now()->getPreciseTimestamp(); $data[$count][] = ($end - $start)/1000000 . '秒'; } $this->table($headers, $data);Après avoir exécuté ce code plusieurs fois, un résultat relativement stable est obtenu : En voyant ce résultat, de grandes questions ont de nouveau occupé mon petit esprit.
est en fait plus lent que 乘以 1024 再减去 乘以 24
. Lorsque j'ai pris ce résultat pour trouver le patron pour résoudre mes doutes, j'ai obtenu cette réponse de sa part : 直接乘以 1000
à 大佬
. J'ai continué à réfléchir à cette question. 我的某个不愿透露姓名的普通朋友
modèle de calcul de la même façon. Ce que j'apprends, c'est 二进制
, ce qui signifie qu'un groupe de joueurs ayant une compréhension approfondie du code a réalisé de nombreuses optimisations d'algorithmes pour 解释型语言 php
dans des endroits que je ne peux pas voir. Et Doudou étudie php
. Est-ce la différence dans ce langage interprété qui conduit aux résultats différents de cette opération ? 编译型语言 C++
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!