1. 首页 > 成人教育

VB/VBA/VB中提升性能的字符串函数+$应用解析

各位老铁们,大家好,今天由我来为大家分享VB/VBA/VB中提升性能的字符串函数+$应用解析,以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

前言

继续说VB/VBA/VBS的内置函数。在前面的《VB/VBA字符串》一文中,介绍了字符串的内存结构。但是,VB的内置函数中绝大部分的返回值和参数都是Variant,其中也包括字符串函数。在《让VB/VBA的语句提升10倍以上的性能!》一文中,通过小小的示例便可看出,Variant对VB/VBA/VBS性能的制约非常严重。

Variant究竟有何不可告人之处呢?《VB的任性,从Variant开始》一文剖析了它的结构。其庞大的身躯,不仅更占内存,而且在使用中需要频繁的转换,所以BtOfficer在《大家都有哪些提高VBA/VB代码运行效率的小技巧?》中提示大家,在掌握VB/VBA指针之前,应尽可能避免使用Variant类型。其中对于字符串函数,也建议大家使用带$版本的。

带$版的字符串函数,本质上就是在避免Variant类型的使用。正好有网友询问是否所有字符串函数都有$版本,那么本篇就围绕以下问题做一个系统的梳理:1、为何$字符串函数能够提高性能?2、都有哪些$版字符串函数?

一、$版字符串函数是否会提高性能?

测试不带$的Left函数

测试带$的Left函数

为了说明问题,通过1个Demo来测试下,为说明问题连续测3次,详见上图。从IDE(PCODE)测试结果来看,带$的字符串函数的确要比不带的要高效那么一丢丢。这说明多带个$符,的确能提升性能。所以,现在看到很多VB黄金时代的很多源码里,字符串函数后都带$符号。

二、为何字符串函数带$能提升性能呢?

为解开这个问题,就要回到字符串函数究竟是如何实现的层面上来。考虑到贴汇编码并适合广大VB/VBA朋友,这里就直接说结论。

所有内置函数几乎都首先调用带Var尾缀的运行库函数。字符串函数而言,这个运行库函数根据类型进行一番转换后,继续调用带Bstr后缀的运行库函数。后面这个运行库函数则会到OLEATO32中再调用相应的BSTR相关的函数。

而带$的字符串函数,则会直接调用带Bstr后缀的运行库函数,少了一层封装。所以,带$的字符串函数会比不带的,要快,但也只能快那么一丢丢。

三、$为何这么神奇?

其实,VB/VBA/VBS的内置函数中,并没有所谓的$版函数,从最前面的总目录图就可以看出来。那为何字符串函数可以加$呢?这就要从类型修饰符说起了,笔者早在《VB/VBA中的类型修饰符》一文中就就集中讲过类型修饰符,而$恰恰就是String类型的修饰符。

当类型修饰符在修饰变量时,就可以直接告诉编译器或解释器使用具体的类型,而不必进入到Variant进行判断,从而省去一层包装的代码。这便是$版字符串函数能够提高性能的根本原因。

不仅字符串如此,在遇到其他Variant类型的返回值和参数,均可以使用类型修饰符来减少不必要的类型转换,来达到避免Variant的目的。

四、到底有哪些$版函数?

其实,有了前面的结论,这个问题也就很清楚了。凡是返回值为Variant的字符串,均可以用$修饰符。为了更方便各位观摩,BtOfficer也给大家列出一个清单:

LeftB

RightB

Lcase

Trim

Ltrim

Rtrim

Space

Ucase

Hex

Oct

String

Date

Time

Left

Right

MidB

Mid

CurDir

Error

Environ

Command

以上函数,均有相应的$版。

用户评论

心贝

我最近在学习 VB 中的字符串处理,这个标题感觉很有用!

    有16位网友表示赞同!

醉婉笙歌

想提高程序运行速度,肯定要去了解哪些函数代码更轻量化吧!

    有15位网友表示赞同!

青袂婉约

VBA 的字符串函数太多,都不知道该怎么选择合适的…

    有10位网友表示赞同!

安好如初

学习 VB 做个小项目,性能经常是瓶颈之一。

    有16位网友表示赞同!

顶个蘑菇闯天下i

感觉哪个函数能提高性能都很有价值,希望能详细说一说啊。

    有8位网友表示赞同!

麝香味

我对 VBA 比较陌生,这个标题是不是讲了怎样精简字符串的处理?

    有6位网友表示赞同!

滴在键盘上的泪

如果能减少循环次数,那速度肯定快很多!

    有13位网友表示赞同!

她的风骚姿势我学不来

我一直使用了一些基础字符串函数,不知道还有哪些更高效的!

    有7位网友表示赞同!

你是梦遥不可及

希望文章能够给出一些实际的代码示例,比较好理解。

    有18位网友表示赞同!

拉扯

学习这些函数,对后期开发项目很有帮助吧!

    有11位网友表示赞同!

清原

以前用VB写程序的时候没有关注过字符串函数的效率。

    有12位网友表示赞同!

花开丶若相惜

想把程序优化一下,看看能不能提高性能~

    有19位网友表示赞同!

瑾澜

感觉这个标题的内容很实用!

    有8位网友表示赞同!

拥菢过后只剰凄凉

学习 VB 的时候,对字符串处理一直没太深入了解。

    有18位网友表示赞同!

墨染年华

希望能够找到一些更“省力”的字符串处理方法。

    有10位网友表示赞同!

优雅的叶子

对于新手来说,哪些字符串函数比较容易上手呢?

    有8位网友表示赞同!

◆残留德花瓣

我记得之前听朋友说过 VBScript 里也有类似的功能,不知道 VB 和 VBA 的区别。

    有7位网友表示赞同!

浅巷°

学习编程的目的是要提高效率,了解这些高性能函数很重要!

    有7位网友表示赞同!

淡淡の清香

希望这篇文章能给我带来一些有用的知识!

    有7位网友表示赞同!

用户评论

你tm的滚

终于找着这篇博客了!一直困扰着字符串操作效率慢的问题,没想到还有这么多技巧可以提升性能!比如 Use StringBuilder() 和 Replace 中的参数替换,简直太赞了! 这些方法我试用过,真的比之前的方法快了很多。

    有15位网友表示赞同!

寻鱼水之欢

这篇博文讲得非常详细,对VB中的字符串函数的应用解析都很全面。特别是关于 INSTR 和 MID 函数的使用技巧,以前从来没想过可以这样子运用。

    有19位网友表示赞同!

泪湿青衫

我也是在做一些数据处理的时候才发现 VB 代码执行速度太慢了,一直想找到解决方案,这篇博文真是及时雨!看来以后得好好学习一下这些字符串函数的优化方法。

    有15位网友表示赞同!

暮染轻纱

觉得这篇文章分析的有些过于浅显,没有深入讲解更复杂的性能优化策略。对于想要了解更高级技术的读者可能有点局限性。

    有10位网友表示赞同!

等量代换

感觉这篇文章对新手很有帮助!简单直白地介绍了提升VB程序效率的方法,即使零基础也能理解。期待作者能够分享更多实用技巧!

    有13位网友表示赞同!

青衫负雪

我一直在尝试各种方法来提高 VB 程序的性能,这篇文章里提到的 "使用 InStr 和 Mid 函数替代循环遍历" 的技巧非常实用,我已经在自己的代码里实践了一遍,效率显著提升!

    有8位网友表示赞同!

青瓷清茶倾城歌

感觉字符串函数的使用技巧太依赖于具体情境了,没有提供一个通用的优化方案。对于大规模数据处理,这篇文章的建议可能不够适用。

    有18位网友表示赞同!

残留の笑颜

这篇博文的内容确实很有价值,让我明白了很多 VB 字符串功能的用法和注意事项。我已经开始尝试将这些知识运用到我的项目中,期待能看到实际的效果!

    有14位网友表示赞同!

花容月貌

我比较在意文章中的代码示例,可以再多提供一些实际项目的应用场景吗?这样更容易理解方法的实用性。

    有17位网友表示赞同!

Edinburgh°南空

作者提到 "使用 StringBuilder() 代替字符串拼接" 可以提高效率,但是忽略了 StringBuilder 的潜在内存消耗问题。在某些情况下,传统的字符串拼接可能更有效率。

    有12位网友表示赞同!

凉城°

总的来说这篇文章对 VB 字符串函数的提升性能方法介绍得比较到位,内容清晰易懂。 非常适合刚接触 VB 语法的开发者阅读学习。

    有18位网友表示赞同!

绳情

希望作者能够针对不同的 VB 版本提供更具体的优化建议,因为有些方法在不同版本中可能会有差异。

    有12位网友表示赞同!

|赤;焰﹏゛

这个博文很有帮助!让我明白如何在不修改现有代码的情况下,通过简单的操作提高程序效率。期待作者能分享更多类似的实用技巧!

    有16位网友表示赞同!

败类

说实话,我感觉这篇文章只是对 VB 常规用法的一个简单总结,并没有提供太多新颖的性能优化方法。对于想要深入学习者来说可能比较枯燥。

    有20位网友表示赞同!

毒舌妖后

我对 VBA 的性能优化很感兴趣,这篇博文的内容非常有价值!希望作者能够继续分享更多关于 VBA 字符串函数优化技巧的文章。”

    有13位网友表示赞同!

安好如初

我发现很多情况下直接使用 VB.NET 语言进行开发,就能比用 VB 提高效率。对于性能敏感的应用,建议优先考虑使用 .NET 平台。

    有10位网友表示赞同!

ˉ夨落旳尐孩。

感谢作者分享这些宝贵经验! 我以后会把这些方法都运用到我的项目中去,相信能显著提升程序的运行速度

    有17位网友表示赞同!

青衫故人

这篇文章提供的优化技巧很有用,但是需要注意的是,每个项目的性能瓶颈不同,需要根据实际情况进行分析和改进。

    有11位网友表示赞同!

本文由发布,不代表新途教育考试网立场,转载联系作者并注明出处:https://www.contdesign.com/crgk/5073.html

联系我们

在线咨询:点击这里给我发消息

微信号:weixin888

工作日:9:30-18:30,节假日休息