背包问题,我写了两个版本的算法程序,bag 和 bag-mt 其中后者是多线程版本,其
使用 4 线程分段计算验证,编写语言是 ASM ,详情请向下观赏:
概述:
1 我的程序对内存访问也是比较频繁密集的,还有就是 xeon 是负载服务器,上面
还有N个后台进程在驻留,可能可这个也有关系。
2 为了加速,我比较多的使用局部变量,省去临界区,互斥事件的耗时。最后汇总。
源码:
bag:
.386
.model flat,stdcall
option casemap:none
include c:/masm32/include/windows.inc
include c:/masm32/include/user32.inc
includelib c:/masm32/lib/user32.lib
include c:/masm32/include/kernel32.inc
includelib c:/masm32/lib/kernel32.lib
CDim equ 28
.const
wetdb220,56,79,135,21,5,175,90,11,153;KG
db25,68,123,35,8,94,207,2,67,159
db78,34,43,12,167,231,12,54,98,32
db65,146,57,234,65,93,56,243,8,56
valdb60,100,45,26,9