前情提要
在前两期实验中,我们对比了C、C++、Python、Java、JavaScript(Node.js)、Go、CommonLisp、仓颉、Python2输出一百万个数字的速度。
第1期
第2期
本期实验将本着认真严谨、公平公正的原则, 系统地评判各种语言的性能。
运行任务
和以前一样,输出一百万个数字,每个数字后换行。
语言版本
Common LISP : Steel Bank Common Lisp
C/C++ 编译器 : MinGW 13.10
Python : 2.7.15和3.13
Java : JDK 17.0.7.7
Node.js : 22.14.0
D 编译器 : dmd
代码
Common LISP
1
(setq start (get-internal-real-time))
(loop for i from 0 to 999999
do (print i))
(setq end (get-internal-real-time))
(setq spent (- end start))
(print spent)
2
(defun main ()
(defvar start (get-internal-real-time))
(loop for i from 0 to 999999
do (print i))
(defvar end (get-internal-real-time))
(defvar spent (- end start))
(print spent)
(sb-ext:quit))
(sb-ext:save-lisp-and-die "cl.exe" :toplevel #'main :executable t)
C
#include<stdio.h>
#include<time.h>
int main(int argc,char **argv){
clock_t start=clock();
int i=0;
for(;i<1000000;i++){
printf("%d\n"