无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1943|回复: 7
打印 上一主题 下一主题

VB计算机CPU暴力测试程序

[复制链接]
跳转到指定楼层
1#
发表于 2012-7-30 13:40:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对不起,我不会VC,所以做成了VB。(如果是VC的话就可以多线程方式执行,不会看上去像死机了)
此程序采用最传统、最暴力的方法测试CPU:
对随机基数进行平方、开方、对数、反对数等暴力整数、浮点计算指定次,检验性能。
注:由于此测试手段非常“暴力”、“野蛮”,霸占CPU,而且是单线程程序,所以可能在计算时看上去像死机,请谅解(这是单线程程序的不足)!
如果是多核CPU,建议按CPU核心数量多开测试,结果更准确!

源码:
  1. Option Explicit
  2. Private Sub Command1_Click()
  3.     Dim jsw, cs, i, ii As Integer
  4.     Dim StartTime, EndTime As Double
  5.     jsw = Form1.Text1.Text
  6.     cs = Form1.Text2.Text * 1000000
  7.     Dim zfc As String
  8.     zfc = "1**6789"
  9.     Form1.Label11.Caption = "正在计算"
  10.     Form1.Label8.Caption = ""
  11.     StartTime = Timer
  12.     For i = 1 To cs
  13.         Randomize
  14.         Dim ranmod As String
  15.         Dim temp, temp2, temp3, temp4, temp5, temp1 As Double
  16.         ranmod = "0"
  17.         For ii = 1 To jsw
  18.             ranmod = ranmod & Mid(zfc, 1 + Int(Len(zfc) * Rnd), 1)
  19.         Next ii
  20.         temp = ranmod ^ 2
  21.         temp1 = Sqr(temp)
  22.         temp2 = Log(temp1)
  23.         temp3 = Exp(temp2)
  24.         temp4 = Atn(temp3)
  25.         temp5 = Tan(temp4)
  26.         temp = temp + 1
  27.         temp = temp * ranmod - 5
  28.     Next
  29.     EndTime = Timer
  30.     Form1.Label8.Caption = EndTime - StartTime
  31.     Form1.Label11.Caption = "计算完成"
  32. End Sub
复制代码

[ 本帖最后由 2011czmxbb52 于 2012-7-31 09:57 编辑 ]

计算机CPU暴力测试程序.part1.rar

292.97 KB, 下载次数: 58, 下载积分: 无忧币 -2

计算机CPU暴力测试程序.part2.rar

292.97 KB, 下载次数: 72, 下载积分: 无忧币 -2

计算机CPU暴力测试程序.part3.rar

20.35 KB, 下载次数: 35, 下载积分: 无忧币 -2

2#
 楼主| 发表于 2012-7-30 20:56:42 | 只看该作者
**
竟然定义错变量类型
导致数字一大就溢出
这回修正了

[ 本帖最后由 2011czmxbb52 于 2012-7-31 09:56 编辑 ]

计算机CPU暴力测试程序.part1.rar

294.92 KB, 下载次数: 27, 下载积分: 无忧币 -2

计算机CPU暴力测试程序.part2.rar

294.92 KB, 下载次数: 28, 下载积分: 无忧币 -2

计算机CPU暴力测试程序.part3.rar

6.8 KB, 下载次数: 22, 下载积分: 无忧币 -2

回复

使用道具 举报

3#
发表于 2012-7-30 22:19:12 | 只看该作者
你循环语句中不用Doevents语句,不怕程序停止响应么?VB程序可是单线程的,编译成可执行文件很耗CPU的,极有可能卡死!
回复

使用道具 举报

4#
 楼主| 发表于 2012-7-31 09:53:53 | 只看该作者
原帖由 2012hongrui 于 2012-7-30 22:19 发表
你循环语句中不用Doevents语句,不怕程序停止响应么?VB程序可是单线程的,编译成可执行文件很耗CPU的,极有可能卡死!

这个问题基本无视。
再严重点按Ctrl+Alt+Del
再说,我也不会VC和MFC
如果我会直接写多线程好了
对了
那个语句的语法是什么
我没有找到
一般我查语法资料都是从天极那边查:http://www.yesky.com/imagesnew/software/vbscript/index.html

[ 本帖最后由 2011czmxbb52 于 2012-7-31 09:56 编辑 ]
回复

使用道具 举报

5#
 楼主| 发表于 2012-7-31 10:05:39 | 只看该作者
好吧
我把我写的烂的一塌糊涂的MFC代码发上来(还有点错),希望大家帮忙!谢谢!

MFC代码.rar

23.95 KB, 下载次数: 17, 下载积分: 无忧币 -2

回复

使用道具 举报

6#
 楼主| 发表于 2012-7-31 17:43:57 | 只看该作者
现在发现VB.NET可以搞多线程(更重要的是不用去烦那么繁杂的API),所以就用VB。NET做了
可惜微软不给力,还要装那么大一个.NET
VB.NET的效率好像也不怎么高
源码:

  1. Option Explicit On
  2. Imports VB = Microsoft.VisualBasic
  3. Friend Class Form1
  4.     Inherits System.Windows.Forms.Form
  5.     Dim Td As System.Threading.Thread '定义一个线程
  6.     'Delegate Sub Dg(ByVal v As Int32) '声明一个委托,以后实现检测核心数量并自动生成线程就有用了
  7.         Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
  8.         Me.Label11.Text = "正在计算"
  9.         Me.Label8.Text = ""
  10.         Td = New System.Threading.Thread(AddressOf CPUTest)
  11.         Td.Start()
  12.         End Sub

  13.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  14.         Td.Abort() '中止线程
  15.         Me.Label11.Text = "计算被终止"
  16.         Me.Label8.Text = ""
  17.     End Sub
  18.     Sub CPUTest()
  19.         '这里定义了很多变量,但是,一旦线程结束(相当于Sub执行完成),内存便会被释放(因为变量生存期过了)
  20.         Dim cs, jsw, i, StartTime, EndTime As Object
  21.         Dim ii As Short
  22.         jsw = Me.Text1.Text
  23.         cs = CDbl(Me.Text2.Text) * 1000000
  24.         Dim zfc As String
  25.         zfc = "1**6789"
  26.         Dim ranmod As String
  27.         Dim temp4, temp2, temp, temp3, temp5 As Object
  28.         Dim temp1 As Double
  29.         Dim temp6, temp7 As String
  30.         temp6 = cs
  31.         temp6 = temp6 / 100
  32.         temp7 = "0"
  33.         CheckForIllegalCrossThreadCalls = False
  34.         Me.ProgressBar1.Value = 0
  35.         CheckForIllegalCrossThreadCalls = True
  36.         StartTime = VB.Timer()
  37.         For i = 1 To cs
  38.             '简便打注释技巧:选中需要注释的区域,按Ctrl+K,再按一遍Ctrl+C就行了;如果要撤销注释,按Ctrl+K,再按一遍Ctrl+U就行了
  39.             If temp7 = temp6 Then
  40.                 CheckForIllegalCrossThreadCalls = False
  41.                 Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
  42.                 CheckForIllegalCrossThreadCalls = True
  43.                 temp7 = "0"
  44.             End If
  45.             temp7 = temp7 + 1
  46.             Randomize()
  47.             ranmod = "0"
  48.             For ii = 1 To jsw
  49.                 ranmod = ranmod & Mid(zfc, 1 + Int(Len(zfc) * Rnd()), 1)
  50.             Next ii
  51.             temp = ranmod ^ 2
  52.             temp1 = System.Math.Sqrt(temp)
  53.             temp2 = System.Math.Log(temp1)
  54.             temp3 = System.Math.Exp(temp2)
  55.             temp4 = System.Math.Atan(temp3)
  56.             temp5 = System.Math.Tan(temp4)
  57.             temp = temp + 1
  58.             temp = temp * ranmod - 5
  59.         Next
  60.         EndTime = VB.Timer()
  61.         CheckForIllegalCrossThreadCalls = False
  62.         Me.Label8.Text = EndTime - StartTime
  63.         Me.Label11.Text = "计算完成"
  64.         CheckForIllegalCrossThreadCalls = True
  65.     End Sub
  66.     ' Sub Label()
  67.     '现在我们用不到这个段,代码就没有
  68.     '以后实现检测核心数量并自动生成线程就有用了
  69.     ' End Sub
  70. End Class
复制代码

下载:

[ 本帖最后由 2011czmxbb52 于 2012-7-31 17:58 编辑 ]

计算机CPU暴力测试程序.rar

10.63 KB, 下载次数: 22, 下载积分: 无忧币 -2

回复

使用道具 举报

7#
发表于 2012-7-31 18:26:26 | 只看该作者
编译成一个可执行文件,最讨厌的就是停止响应时按ctr|+alt+De|,既然你不在乎,我也不再说什么了.
回复

使用道具 举报

8#
 楼主| 发表于 2012-7-31 19:58:46 | 只看该作者
原帖由 2012hongrui 于 2012-7-31 18:26 发表
编译成一个可执行文件,最讨厌的就是停止响应时按ctr|+alt+De|,既然你不在乎,我也不再说什么了.

好了
现在VB.NET的版本有停止按钮了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-13 10:09

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表