-
vb.net 教程 5-14 图像处理之内存处理基础6
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
续上一篇教程
在代码中,我使用了这样一组代码,简单计算图像处理需要的时间:
Dim timeStart, timeEnd As DateTime
Dim timeDiff As TimeSpan
timeStart = Now
'图像处理代码
timeEnd = Now
timeDiff = timeEnd - timeStart
ListBox1.Items.Add("像素处理:" & timeDiff.TotalMilliseconds)
这是我在 《vb.net 教程 1-8 日期时间类型1》中所讲过的求时间间隔的方法,希望大家没有忘记。
我们来看看四种处理方法运行的时间:
为了大家看的更清楚,我做了一个简单的统计,具体代码如下:
'统计
'http://blog.csdn.net/uruseibest
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
Dim wayArray1 As Single = 0F '一维数组方法处理总共用时(ms)
Dim wayArray2 As Single = 0F '二维数组方法处理总共用时(ms)
Dim wayPointer As Single = 0F '指针处理方法处理总共用时(ms)
Dim wayPixel As Single = 0F '像素处理方法处理总共用时(ms)
Dim countArray1 As Integer = 0 '一维数组方法处理总次数
Dim countArray2 As Integer = 0 '二维数组方法处理总次数
Dim countPointer As Integer = 0 '指针处理方法处理总次数
Dim countPixel As Integer = 0 '像素处理方法处理总次数
If ListBox1.Items.Count < 1 Then Exit Sub
Dim info As String
For i As Integer = 0 To ListBox1.Items.Count - 1
info = ListBox1.Items(i)
Select Case info.Substring(0, 5)
Case "一维数组:"
wayArray1 += Single.Parse(info.Substring(5, Len(info.Length - 5)))
countArray1 += 1
Case "二维数组:"
wayArray2 += Single.Parse(info.Substring(5, Len(info.Length - 5)))
countArray2 += 1
Case "指针处理:"
wayPointer += Single.Parse(info.Substring(5, Len(info.Length - 5)))
countPointer += 1
Case "像素处理:"
wayPixel += Single.Parse(info.Substring(5, Len(info.Length - 5)))
countPixel += 1
Case Else
'不处理
End Select
Next
MessageBox.Show("一维数组方法,运行 " & countArray1 & "次,平均处理时间:" & wayArray1 / countArray1 & " ms" & ControlChars.CrLf &
"二维数组方法,运行 " & countArray2 & "次,平均处理时间:" & wayArray2 / countArray2 & " ms" & ControlChars.CrLf &
"指针处理方法,运行 " & countPointer & "次,平均处理时间:" & wayPointer / countPointer & " ms" & ControlChars.CrLf &
"像素处理方法,运行 " & countPixel & "次,平均处理时间:" & wayPixel / countPixel & " ms"
)
End Sub
每个方法运行数次后,统计的结果如下:
居然有几十倍的差距。。。
特别说明的是,以上图片像素为 700*525,文件大小为252KB
我这里还测试了一张图片,像素为3840*2160,文件大小为 3.62MB,处理结果如下:
由于像素处理实在太慢,我只测试了4次。这次的处理效率差距没有处理小图片那么大。
同时我也看了每个方法在运行时侯cpu占用的情况:
1、2、3、4,分别代表了一维数组、二维数组、内存指针、像素处理,红色方框是处理时大概的cpu占用时间。
总之,效率是第一生产力,大家在处理图片时,尽量使用高效的内存锁定处理吧。
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。
学习更多vb.net知识,请参看 vb.net 教程 目录
————————————————
版权声明:本文为CSDN博主「VB.Net」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/uruseibest/article/details/70185943
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比