字符串函数前言继续说VB/VBA/VBS的内置函数。 在前面的《VB/VBA字符串》一文中,介绍了字符串的内存结构。 但是,VB的内置函数中绝大部分的返回值和参数都是Variant,其中也包括字符串函数。 在《让VB/VBA的语句提升10倍以上的性能!》一文中,通过小小的示例便可看出,Variant对VB/VBA/VBS性能的制约非常严重。 Variant究竟有何不可告人之处呢?《Variant构造智能指针,撒欢了玩》一文剖析了它的结构。 其庞大的身躯,不仅更占内存,而且在使用中需要频繁的转换,所以BtOfficer在《有哪些提高VB/VBA代码运行效率的小技巧?》中提示大家,在掌握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类型的修饰符。 类型修饰符可以用于变量类型的声明,比如DimuStr$。 而函数名,又是特殊的变量(可参考BtOfficer早前对函数结构相关的文章),所以类型修饰符是可以直接修饰函数名的。 当类型修饰符在修饰变量时,就可以直接告诉编译器或解释器使用具体的类型,而不必进入到Variant进行判断,从而省去一层包装的代码。 这便是$版字符串函数能够提高性能的根本原因。 不仅字符串如此,在遇到其他Variant类型的返回值和参数,均可以使用类型修饰符来减少不必要的类型转换,来达到避免Variant的目的。 四、到底有哪些$版函数?其实,有了前面的结论,这个问题也就很清楚了。 凡是返回值为Variant的字符串,均可以用$修饰符。 为了更方便各位观摩,BtOfficer也给大家列出一个清单:LeftBRightBLcaseTrimLtrimRtrimSpaceUcaseHexOctStringDateTimeLeftRightMidBMidCurDirErrorEnvironCommand以上函数,均有相应的$版。 欢迎关注BtOfficer(收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面),有严肃而枯燥的技术,也有轻松的唠嗑,更有现成工具等你来拿,期待你的加入!
字符串函数前言继续说VB/VBA/VBS的内置函数。 在前面的《VB/VBA字符串》一文中,介绍了字符串的内存结构。 但是,VB的内置函数中绝大部分的返回值和参数都是Variant,其中也包括字符串函数。 在《让VB/VBA的语句提升10倍以上的性能!》一文中,通过小小的示例便可看出,Variant对VB/VBA/VBS性能的制约非常严重。 Variant究竟有何不可告人之处呢?《Variant构造智能指针,撒欢了玩》一文剖析了它的结构。 其庞大的身躯,不仅更占内存,而且在使用中需要频繁的转换,所以BtOfficer在《有哪些提高VB/VBA代码运行效率的小技巧?》中提示大家,在掌握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类型的修饰符。 类型修饰符可以用于变量类型的声明,比如DimuStr$。 而函数名,又是特殊的变量(可参考BtOfficer早前对函数结构相关的文章),所以类型修饰符是可以直接修饰函数名的。 当类型修饰符在修饰变量时,就可以直接告诉编译器或解释器使用具体的类型,而不必进入到Variant进行判断,从而省去一层包装的代码。 这便是$版字符串函数能够提高性能的根本原因。 不仅字符串如此,在遇到其他Variant类型的返回值和参数,均可以使用类型修饰符来减少不必要的类型转换,来达到避免Variant的目的。 四、到底有哪些$版函数?其实,有了前面的结论,这个问题也就很清楚了。 凡是返回值为Variant的字符串,均可以用$修饰符。 为了更方便各位观摩,BtOfficer也给大家列出一个清单:LeftBRightBLcaseTrimLtrimRtrimSpaceUcaseHexOctStringDateTimeLeftRightMidBMidCurDirErrorEnvironCommand以上函数,均有相应的$版。 欢迎关注BtOfficer(收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面),有严肃而枯燥的技术,也有轻松的唠嗑,更有现成工具等你来拿,期待你的加入!
目录
- 1 男模网
- 2 丰满的闺蜜2中文字幕
- 3 一生一世电视剧免费观看完整版
- ▪ 伦理电影在线观看
- ▪ 丑女大翻身电影
- 4 小樱禁图
- ▪ 性行为电影
- ▪ 待办事项(1V1)笔趣阁
- 5 杨思敏新金瓶梅
- 6 一前一后同时攻击舒服吗
- ▪ 快乐方程式
- ▪ h片在线观看
- ▪ 哒哒哒免费观看视频在线高清
- 7 与子乱全文阅读
- ▪ 里番种子
- ▪ 秦晋之好gl
- ▪ 谍变1939电视剧
- ▪ 精品FREESEX呦交
- ▪ 欧美大黑粗
- 8 牛郎织女艳谭
- ▪ 双色球晒票
- ▪ 日本在房间打扑克又疼又叫
- ▪ 变态女狂花
- ▪ 一代妖后
- ▪ 大唐双龙
- ▪ 两个人的免费视频国语
- ▪ 撼龙天棺电影完整版免费观看
- ▪ 诛仙寻宝天行官网
- 9 最近更新在线中文字幕
- ▪ 男生讲讲自己第一次细节真实
- ▪ 撒野振动浴缸车丞飞
- ▪ 新金瓶梅观看
- 10 老司机精品视频在线观看6
- ▪ 潘甜甜果冻传媒七夕连接
- ▪ 仙尊奶爸当赘婿动漫免费观看
- ▪ 香港舞男
- ▪ 疯狂的赛车
- ▪ 八哥电影网
- 11 恶女花魁电影
- ▪ 嫩草影视
- ▪ 被对象干醒了是什么体验
- ▪ 女的扒开腿让男的猛进猛出
- ▪ 操片免费
- ▪ 色人阁网
- 12 贤者之爱
- 13 治疗早些泄吃什么药安全有效
- 14 骚虎视频完整
品色堂成人小说《品色堂成人小说》由来
编辑品色堂成人小说《品色堂成人小说》起源