问题:

a + b + c = 1000, a*a + b*b = c*c

分别以go1.17.7, Python 3.9.0, PHP 7.4.3解答该问题。
每个解答中 tt1()为三遍循环, tt2() 为优化后的解法

可以看到go执行耗时

tt1() 用时 731496100 ns = 0.7314961 s
tt2() 用时 548000 ns = 0.000548 s

可以看到python执行耗时

tt1() 用时: 74647421900 ns = 74.6474219 秒
tt2() 用时: 291977200 ns = 0.2919772 秒

可以看到php执行耗时

对比可以发现go在大的运算方面性能特别高
php的执行性能也比python的高
以上执行时间, 每次执行可能略有差异, 但不妨碍性能测试指标和结果

以下是go的解法, 其中tt1()为三遍循环, tt2() 为优化后的解法

package main

import (
	"fmt"
	"time"
)

// a + b + c = 1000,  a*a + b*b = c*c
// tt1()  用时 731496100 ns = 0.7314961 s
// tt2() 用时 548000 ns = 0.000548 s

//func tt1() {
//	for a := 0; a < 1001; a++ {
//		for b := 0; b < 1001; b++ {
//			for c := 0; c < 1001; c++ {
//				if a+b+c == 1000 && a*a+b*b == c*c {
//					fmt.Printf("a=%d, b=%d, c=%d\n", a, b, c)
//				}
//			}
//		}
//	}
//}

func tt2() {
	for a := 0; a < 1001; a++ {
		for b := 0; b < 1001-a; b++ {
			c := 1000 - a - b
			if a*a+b*b == c*c {
				fmt.Printf("a=%d, b=%d, c=%d\n", a, b, c)
			}
		}
	}
}

func main() {
	start := time.Now().UnixNano()
	tt2()
	end := time.Now().UnixNano()
	fmt.Println("用时: ", end-start)
}

以下是python的解法, 其中tt1()为三遍循环, tt2() 为优化后的解法

import time

# python3.9

# tt1() 用时:  74647421900 ns = 74.6474219 秒
# tt2() 用时:  291977200 ns = 0.2919772 秒

# def tt1():
#     for a in range(1001):
#         for b in range(1001):
#             for c in range(1001):
#                 if a + b + c == 1000 and a ** 2 + b ** 2 == c ** 2:
#                     print("a=%d,b=%d,c=%d" % (a, b, c))


def tt2():
    for a in range(1001):
        for b in range(1001 - a):
            c = 1000 - a - b
            if a ** 2 + b ** 2 == c ** 2:
                print("a=%d,b=%d,c=%d" % (a, b, c))


if __name__ == '__main__':
    start = time.time_ns()
    tt2()
    end = time.time_ns()
    print('用时: ', end - start)

以下是php的解法, 其中tt1()为三遍循环, tt2() 为优化后的解法