用python下载coremark测试linux系统的性能

首先要安装python3,gcc,make等。

deb系的:sudo apt install python3 gcc make

其他系统,不多介绍了。

复制代码到文件,并重命名为core_test.py,放到一个空文件夹里,找到coremark的下载地址,eembc的,然后右键复制连接地址,tar.gz和zip均可。开源站点在这里:https://github.com/eembc/coremark

新建一个文件夹存core_test.py,然后打开终端,输入python3 core_test.py,把下载连接输入进去,再设置好要使用的线程数。

等待结束

然后输入cd coremark回车,再输入python3 start_test.py回车,等待编译结束,自动跑起来。

如果想要重新设置线程数,可以输入python3 reset_test.py重新编译并跑起来。

PS:未加入纠错机制,如果存在问题会报错。。。暂时无解。

import os
web_link=input('请输入coremark源码下载地址:')
set_thread=input('请输入设置的线程数:')
os.system('wget {}'.format(web_link))
down_file=os.listdir('./')
for i in down_file:
	if '.tar.gz' in i:
		file_name=i
		os.system('tar -zxvf ./{}'.format(file_name))
		os.system('rm -r ./{}'.format(file_name))
	elif 'zip' in i:
		file_name=i
		os.system('unzip ./{}'.format(file_name))
		os.system('rm -r ./{}'.format(file_name))
unpack_file=os.listdir('./')
for i in unpack_file:
	if os.path.isdir('./{}'.format(i)) and ('coremark' in i):
		now_file=i
		os.rename('./{}'.format(now_file),'./coremark')
with open('./coremark/linux64/core_portme.mak','r',encoding='utf-8') as f1,open('./coremark/linux64/core_portme.mak_2','a',encoding='utf-8') as f2:
	strl='LFLAGS_END += -lrt'
	for line in f1:
		if strl not in line:
			f2.write(line)
		else:
			f2.write(strl.replace('LFLAGS_END += -lrt','LFLAGS_END += -lrt -lpthread\n'))
print('end')
os.rename('./coremark/linux64/core_portme.mak','./coremark/linux64/core_portme_bak.mak')
os.rename('./coremark/linux64/core_portme.mak_2','./coremark/linux64/core_portme.mak')
with open('start_test.py','w',encoding='utf-8') as f3:
	f3.write('import os\n')
	f3.write('os.system(\'make PORT_DIR=linux64 XCFLAGS=\"-DMULTITHREAD={} -DUSE_PTHREAD\"\')'.format(set_thread))
	f3.write('\n')
	f3.write('os.system("./coremark.exe")\n')
	f3.write("print('测试已完成,成绩请查看Iterations/Sec所显示的数值')\n")
	f3.write("print('可使用python3 reset_test.py重新设置线程数量')\n")
with open('reset_test.py','w',encoding='utf-8') as f3:
	f3.write('import os\n')
	f3.write("set_thread=input('请输入设置的线程数:')\n")
	f3.write('os.remove("./coremark.exe")\n')
	f3.write('os.system(\'make PORT_DIR=linux64 XCFLAGS=\"-DMULTITHREAD={} -DUSE_PTHREAD\"\'.format(set_thread))')
	f3.write('\n')
	f3.write('os.system("./coremark.exe")\n')
	f3.write("print('测试已完成,成绩请查看Iterations/Sec所显示的数值')\n")
os.system('mv ./start_test.py ./coremark/start_test.py')
os.system('mv ./reset_test.py ./coremark/reset_test.py')
print('可以cd coremark,并运行python3 start_test.py进行测试')
print('可使用python3 reset_test.py重新设置线程数量')
请登录后发表评论