设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: wang1999
打印 上一主题 下一主题

[API] 拷贝字符串速度之对比: CopyMemory 与 动态字节数组

[复制链接]
11#
 楼主| 发表于 2015-6-11 19:39:06 | 只看该作者
tmtony 发表于 2015-6-9 17:47
是的,用系统内置的 有时速度会快不少,不过,对有些用户,可能 对API有恐惧

另对你那个测试结果报告是 ...

其实我只是作了一个简单EXCEL模板, 还是只是手动把测试数据复制到EXCEL.
12#
 楼主| 发表于 2015-6-11 19:45:19 | 只看该作者
至于VBA调用API的整个来龙去脉, 是怎么回事, 我还真不怎么清楚. 不知道老大们, 有没有文章 推荐看一下.

(应该是先检查DLL是否加载, 如果已经加载则通过函数指针直接调用,这个是我的想像,没有事实的依据){:soso_e144:}

点击这里给我发消息

13#
发表于 2015-6-11 21:24:33 | 只看该作者
wang1999 发表于 2015-6-11 19:45
至于VBA调用API的整个来龙去脉, 是怎么回事, 我还真不怎么清楚. 不知道老大们, 有没有文章 推荐看一下.

...

CopyMemory 这篇 文章值得一看
http://www.office-cn.net/thread-120040-1-1.html
14#
发表于 2015-6-11 22:08:28 | 只看该作者
又看到一个开始在vb里涉及指针。毫不夸张地说,越深入,痛苦指数与日俱增。
有三篇具有里程碑意义的文章,你可以百度一下:
1、阿国哥的vb里实现callAnyfuncttionPtr。这一篇文章实在是有点石破天惊。
2、vb用dispcallfunc调用纯c的dll或delphi(pascal)的dll。注:api的调用方式是无法调用纯c的dll或delphi的dll的。
3、一个大学生写的在vb里实现类的继承(里面几乎包括了vb的所有难点和亮点)

不要问我,我叫雷人,雷锋的亲戚,我什么都不懂。
15#
 楼主| 发表于 2015-6-12 12:32:53 | 只看该作者
本帖最后由 wang1999 于 2015-6-12 12:47 编辑

比memcpy更快的内存拷贝, 这个也不错
http://www.cnblogs.com/GoodGoodW ... /10/15/1852251.html

总结编译后的复制有两种
小数据逐步赋值
大数据循环赋值



16#
 楼主| 发表于 2015-6-12 12:41:45 | 只看该作者
ganlinlao 发表于 2015-6-11 22:08
又看到一个开始在vb里涉及指针。毫不夸张地说,越深入,痛苦指数与日俱增。
有三篇具有里程碑意义的文章, ...

里程碑意义?有点夸张了吧, 这几篇实用性也不大.

我觉得老大推荐的不错, 主要是分类总结得不错.
http://www.office-cn.net/thread-120040-1-1.html


不过谢谢你的推荐,

点击这里给我发消息

17#
发表于 2015-6-13 04:51:09 来自手机 | 只看该作者
ganlinlao 发表于 2015-6-11 22:08
又看到一个开始在vb里涉及指针。毫不夸张地说,越深入,痛苦指数与日俱增。
有三篇具有里程碑意义的文章, ...

有链接吗?特别那个大学生的类,很想了解下。
18#
 楼主| 发表于 2015-6-13 15:04:35 | 只看该作者
zpy2 发表于 2015-6-13 04:51
有链接吗?特别那个大学生的类,很想了解下。

在vb里实现类的继承, 其实这个很简单:基本用Implements来实现, 如果你装有VB6的MSDN, 里面就有详细的示例(可惜我现在没装), 只不用得很少, 给人感觉很神秘

我几年前弄过,可惜实用性真不是很强, 除非你用VBA开发的类有父子关系, 如创建类似ado中recordset与field之间的关系
19#
 楼主| 发表于 2015-6-13 15:12:27 | 只看该作者
本帖最后由 wang1999 于 2015-6-25 11:37 编辑

今天给出VB中拷贝字符串速度之对比.
1表示倍数, 代表时间基数条件:2字节数
语句:MID$, 1
语句:MID, API:copymemory,  2
运算符:=, 4(需要清除原字符内存,然后再创建字符)
字节数组:byte(), 6(需要创建动态数组SAFEARRAY,然后再创建数据)

2015-06-25, 补充

条件:52字节数,28个字符
语句set, copymemory 1 (copymemory 还比Lset稍快)
运算符:=, 1.5
语句:MID$, 3




点击这里给我发消息

20#
发表于 2015-6-14 13:44:33 | 只看该作者
不错,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-27 00:00 , Processed in 0.075861 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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