精易论坛

标题: 【支持库改造】通用对象支持库Ex发布贴 [打印本页]

作者: chriscp    时间: 2023-1-9 13:22
标题: 【支持库改造】通用对象支持库Ex发布贴
本帖最后由 chriscp 于 2023-1-30 19:47 编辑

已经完成了通用对象支持库的初版
粗略测试了一下性能  测试结果在最后面

相比官方的库性能还是提升了不少  后面的计划是先修复现有bug  然后再拓展一些新功能吧   
支持静态编译  支持链接器版本还是同正则库 vs2010-2022


通用对象支持库:
        寻找文本:
        15.6M的文件 寻找字符串1000次
        测试结果:
                寻找文本: 14109ms
                倒找文本: 9078ms
                寻找文本无视大小写: 21406ms
                倒找文本无视大小写: 14422ms

        添加:
        1000000次连接字符串“1234567890”
        测试结果:
                3156ms
        1000000次连接字符串“1234567890” 置内存增量10000000
        测试结果:
                78ms            

通用对象支持库Ex:
        寻找文本:
        15.6M的文件 寻找字符串1000次
        测试结果:
                寻找文本: 1578ms
                倒找文本: 1406ms
                寻找文本无视大小写: 9391ms
                倒找文本无视大小写: 6391ms

        添加:
        1000000次连接字符串“1234567890”
        测试结果:
                15ms
        1000000次连接字符串“1234567890” 置内存增量10000000
        测试结果:
                0-16ms (有时是0   有时是16  可能是因为取启动时间精度太低  不能取到16以下)


【众筹】【支持库改造】通用对象支持库Ex
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14760033
(出处: 精易论坛)

补充内容 (2023-1-9 16:28):
拓展了一个命令:寻找长文本  该命令使用了简化版的bm算法,算法效率要比默认算法要高,实际使用的时候由于文本的情况可能会有所浮动,请自行测试
补充内容 (2023-1-12 23:17):
拓展了三个快速文本对象的命令:包含,开始于,结束于
补充说一下  以下命令:
取缓冲区
释放缓冲区
置内存增量

目前调用都是无效的  
取缓冲区虽然会返回缓冲区指针 但是并不会改变缓冲区容量  所以直接读写是不安全的
释放缓冲区无效
置内存增量 无效  因为调整了扩容策略  内存增量并不是一个固定值
置可用内存第一个参数已经被设置有效  可以实现预分配内存  大大提高了 字符串连接的效率  感谢@aiky123 反馈的问题
我重新修改了 字符串连接以及字符串设置   提高了他们的效率  测试结果已经修改到了上面
补充内容 (2023-1-30 19:45):
修正子文本替换以及子字节集替换的问题(效率极低之前的方法)














补充内容 (2023-3-21 23:17):
修复复制构造逻辑错误导致崩溃的bug   

补充内容 (2023-3-21 23:17):
最新的版本 请到https://gitee.com/chriscp/elib_commobj下载最新发行版

补充内容 (2023-4-23 18:59):
更新:兼容到vc6链接器

补充内容 (2023-6-12 15:02):
2023-6-12
修复:子文本替换返回的结果不正确的问题

补充内容 (2023-6-14 13:24):
修复 置文本/字节集 添加 插入  只有第一个参数有效的问题

补充内容 (2023-6-14 16:02):
我已经决定不再开发此支持库
最后一个版本到这里下载  如果只想下载的直接翻到帖子最下面就行
https://125.confly.eu.org/thread-14786141-1-1.html
作者: ノ朽默℡    时间: 2023-1-9 14:25
感谢大牛
作者: kanhaiyouyue    时间: 2023-1-9 15:08
6666666666666666666666666666666666666666666
作者: 即刻先生    时间: 2023-1-9 16:50
这才是大神
作者: 撒加    时间: 2023-1-9 17:29
感谢分享,很给力!~
作者: 寂寞的泥    时间: 2023-1-9 20:07
我怎么下载帖子里的支持库是原版啊?
作者: chriscp    时间: 2023-1-9 21:52
寂寞的泥 发表于 2023-1-9 20:07
我怎么下载帖子里的支持库是原版啊?

新版没有传  因为我改不了帖子内容
作者: chriscp    时间: 2023-1-9 21:53
寂寞的泥 发表于 2023-1-9 20:07
我怎么下载帖子里的支持库是原版啊?

不过也不是原版  这是支持库改造计划的库所以和原版命令一样
作者: 666yxk666    时间: 2023-1-9 22:01
66666666666666666666666666
作者: yjd    时间: 2023-1-10 10:36
看效率提升很大
作者: 李泽勇2    时间: 2023-1-10 17:27
感谢大佬分享,下载试试看。
作者: 情殇    时间: 2023-1-10 19:52
给大佬顶帖
作者: 曜辉    时间: 2023-1-10 21:45
效率提升真的是很多,支持一下!
作者: 李泽勇2    时间: 2023-1-11 09:39
你好楼主,没见到寻找长文本命令呢!

作者: chriscp    时间: 2023-1-11 09:44
李泽勇2 发表于 2023-1-11 09:39
你好楼主,没见到寻找长文本命令呢!

帖子没法添加附件  我还不知道怎么弄  所以先发那个群里测试一段时间先
作者: 梦雨心君    时间: 2023-1-11 14:40
很给力!~很给力!~
作者: 李泽勇2    时间: 2023-1-11 17:12
chriscp 发表于 2023-1-11 09:44
帖子没法添加附件  我还不知道怎么弄  所以先发那个群里测试一段时间先

好的,可以开新帖。
作者: 吴大大    时间: 2023-1-11 18:02
非常好支持支持
作者: chriscp    时间: 2023-1-11 19:49
李泽勇2 发表于 2023-1-11 17:12
好的,可以开新帖。

已经更新了附件
作者: 风林听雨    时间: 2023-1-11 23:48
感谢分享,很给力!~  希望继续努力
作者: 李泽勇2    时间: 2023-1-12 08:34
chriscp 发表于 2023-1-11 19:49
已经更新了附件

谢谢楼主,
作者: 陽陽陽    时间: 2023-1-12 14:28
chriscp 发表于 2023-1-11 09:44
帖子没法添加附件  我还不知道怎么弄  所以先发那个群里测试一段时间先

可以回复帖子,然后右边有个管理按钮,点那个,有个置顶
作者: chriscp    时间: 2023-1-12 14:56
陽陽陽 发表于 2023-1-12 14:28
可以回复帖子,然后右边有个管理按钮,点那个,有个置顶

已经可以编辑了  
作者: sadamu999    时间: 2023-1-12 15:03
感谢分享,很给力!~
作者: e小鸟168    时间: 2023-1-15 00:07
辛苦了,感谢大大的付出
作者: aiky123    时间: 2023-1-15 11:50



使用内存增量后,默认的通用对象,相加只需90ms,EX版800多,使用和没使用一样,内存增量函数是否正常 新建文本文档 2.e (2.69 KB, 下载次数: 1)

作者: chriscp    时间: 2023-1-15 18:50
aiky123 发表于 2023-1-15 11:50
使用内存增量后,默认的通用对象,相加只需90ms,EX版800多,使用和没使用一样,内存增量函数是否正常
...

内存增量我去掉了    所以是不起作用的  
作者: chriscp    时间: 2023-1-15 22:20
aiky123 发表于 2023-1-15 11:50
使用内存增量后,默认的通用对象,相加只需90ms,EX版800多,使用和没使用一样,内存增量函数是否正常
...

你这个相当于预分配了   的确没有添加预分配的命令  后面更新会使用置可用内存的第一个参数有效     可以使用那个命令来预分配内存
作者: 财通天地    时间: 2023-1-16 02:36
报错了,这个是什么问题?
commobj_static.lib(fne.cpp.obj) : error LNK2001: unresolved external symbol __itoa_s
commobj_static.lib(fne.cpp.obj) : error LNK2001: unresolved external symbol __i64toa_s
commobj_static.lib(fne.cpp.obj) : error LNK2001: unresolved external symbol __gcvt_s
commobj_static.lib(fne.cpp.obj) : error LNK2001: unresolved external symbol _strcpy_s
commobj_static.lib(fne.cpp.obj) : error LNK2001: unresolved external symbol _strcat_s
commobj_static.lib(fne.cpp.obj) : error LNK2001: unresolved external symbol _sprintf_s
commobj_static.lib(fne.cpp.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
commobj_static.lib(bstrlib.c.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
commobj_static.lib(fne.cpp.obj) : error LNK2001: unresolved external symbol ___CxxFrameHandler3
commobj_static.lib(fne.cpp.obj) : error LNK2001: unresolved external symbol ___security_cookie
commobj_static.lib(bstrlib.c.obj) : error LNK2001: unresolved external symbol ___security_cookie
作者: chriscp    时间: 2023-1-16 06:01
财通天地 发表于 2023-1-16 02:36
报错了,这个是什么问题?
commobj_static.lib(fne.cpp.obj) : error LNK2001: unresolved external symbol ...

链接器最低为vc10  vc6在改造库计划有写是不需要支持的
作者: 财通天地    时间: 2023-1-16 11:56
财通天地 发表于 2023-1-16 02:36
报错了,这个是什么问题?
commobj_static.lib(fne.cpp.obj) : error LNK2001: unresolved external symbol ...

我用的是VC2022linker
作者: chriscp    时间: 2023-1-16 13:47
财通天地 发表于 2023-1-16 11:56
我用的是VC2022linker

链接器问题 2022不会缺少这些符号的  
作者: chriscp    时间: 2023-1-17 00:37
aiky123 发表于 2023-1-15 11:50
使用内存增量后,默认的通用对象,相加只需90ms,EX版800多,使用和没使用一样,内存增量函数是否正常
...

优化了添加的效率  可以看帖子
作者: pyms    时间: 2023-1-17 09:38
给楼主点赞,希望继续分享!
作者: 千里追风    时间: 2023-1-17 19:12
感谢分享~~
作者: mmlai8    时间: 2023-1-17 19:19
感谢分享~~
作者: yq1    时间: 2023-1-17 20:47
66666666666666666
作者: qzonc    时间: 2023-1-18 12:44
感谢分享
作者: hanwuq    时间: 2023-1-18 13:38
感谢分享
作者: kioging    时间: 2023-1-18 21:38
支持一下
作者: wanz01    时间: 2023-1-21 07:09
感谢分享!!!
作者: zhyl8888    时间: 2023-1-21 09:02
没图没真相,纯支持下了~~~
作者: 天空c    时间: 2023-1-21 21:39
感谢分享
作者: qiang888    时间: 2023-1-22 01:47

感谢分享
作者: 1720138548    时间: 2023-1-22 08:04
        感谢分享,很给力!~
作者: vihp    时间: 2023-1-23 15:26
感谢分享,很给力!~
作者: 明天自然醒    时间: 2023-1-24 11:28

感谢分享,很给力!~
作者: 幸运绵    时间: 2023-1-24 18:29
感谢分享,很给力!~
作者: potianzhan    时间: 2023-1-25 11:49

作者: zxxiaopi    时间: 2023-1-25 17:52
感谢分享,很给力!~
作者: kimeti    时间: 2023-1-26 10:48
谢谢分享

作者: 向月亮道晚安    时间: 2023-1-26 16:56
支持大佬,感谢分享
作者: Tokgo    时间: 2023-1-28 02:49
开源精神必须支持~
作者: 清清流水    时间: 2023-1-29 09:55
感谢分享 辛苦了
作者: luguidong2018    时间: 2023-1-29 19:26
这么多支持库了
作者: Zangetsu    时间: 2023-1-29 21:05
6666666666666666
作者: vesslin    时间: 2023-1-31 04:27
这么多支持库了
作者: 兔子吃胡萝卜    时间: 2023-2-1 03:44
感谢分享,很给力
作者: 紅顏じ亦上钩ジ    时间: 2023-2-1 19:31
谢谢你的帮助~
作者: alanwoo    时间: 2023-2-1 23:03
谢谢分享  
作者: mooo    时间: 2023-2-2 12:18
谢谢分享
作者: 梦°    时间: 2023-2-2 23:54
通用对象支持库Ex
作者: 一尘不染    时间: 2023-2-3 02:05
支持开源~!感谢分享
作者: 你华总i    时间: 2023-2-3 03:01
666666666666666666666666666666666666
作者: luguidong2018    时间: 2023-2-3 11:13
一直不知道这个支持库是做什么的
作者: luguidong2018    时间: 2023-2-3 11:14
钢材测试乐意i下,编译正常
作者: 兴趣使然222    时间: 2023-2-3 14:06
谢谢分享

作者: 笑拥孤独    时间: 2023-2-5 05:02
6666666666666666666666
作者: kantal    时间: 2023-2-5 12:54
支持开源~!感谢分享~
作者: Yisensol    时间: 2023-2-5 13:42
支持开源~!感谢分享
作者: 六先生    时间: 2023-2-6 14:02
感谢分享,很给力!~
作者: 3304846256    时间: 2023-2-6 15:13
6666666666666666666666666
作者: mytiger    时间: 2023-2-6 16:31
感谢分享!~
作者: badlwolf    时间: 2023-2-7 19:13
支持一个,感谢分享!!!!!
作者: 千与千寻    时间: 2023-2-8 00:41
666666666666666
作者: 2576605471    时间: 2023-3-4 18:10
谢谢分享
作者: 2576605471    时间: 2023-3-7 17:12
大佬, 这两个对象目前都是从文件读, 能不能加一个从字节集读
作者: chriscp    时间: 2023-3-8 11:03
2576605471 发表于 2023-3-7 17:12
大佬, 这两个对象目前都是从文件读, 能不能加一个从字节集读

本来就可以从字节集读   
作者: 2576605471    时间: 2023-3-8 14:03
chriscp 发表于 2023-3-8 11:03
本来就可以从字节集读

是我想偏了, 置文本(到文本(字节集)), 这样用就行.
作者: carmen9804    时间: 2023-3-13 11:42
感谢分享,很给力!~
作者: carmen9804    时间: 2023-3-13 11:44

作者: carmen9804    时间: 2023-3-13 11:45

作者: 00771288    时间: 2023-3-19 13:33
挺好 看看效果
作者: 1983399346    时间: 2023-3-19 21:02
本帖最后由 1983399346 于 2023-3-19 21:10 编辑

不可以直接返回 快速字节集对象 测试返回直接崩溃  结构体里包含快速字节集对象

1.png (556.86 KB, 下载次数: 4)

原版的可以正常返回

原版的可以正常返回

作者: chriscp    时间: 2023-3-21 23:16
1983399346 发表于 2023-3-19 21:02
不可以直接返回 快速字节集对象 测试返回直接崩溃  结构体里包含快速字节集对象 ...

已经修复   可以去https://gitee.com/chriscp/elib_commobj下载最新发行版
作者: 1983399346    时间: 2023-3-22 00:20
可以了感谢大佬 膜拜大佬

批注 2023-03-22 001938.png (445.06 KB, 下载次数: 2)

批注 2023-03-22 001938.png

作者: 笨来无一悟    时间: 2023-4-28 22:24
下载了最新发行版 用什么编译成易语言可以使用的支持库呢
作者: chriscp    时间: 2023-5-1 13:58
笨来无一悟 发表于 2023-4-28 22:24
下载了最新发行版 用什么编译成易语言可以使用的支持库呢

发行版已经是编译好的版本了
作者: a957968597    时间: 2023-5-5 01:14
下载了,但是都是.cpp的啊。。。。
作者: chriscp    时间: 2023-5-8 15:34
a957968597 发表于 2023-5-5 01:14
下载了,但是都是.cpp的啊。。。。

发行版里  
作者: 咸鱼666    时间: 2023-6-12 13:45
发现个bug,替换子文本的起始替换位置有问题

.版本 2
.支持库 commobj
.支持库 spec

.局部变量 _文本, 文本型
.局部变量 快速文本对象, 快速文本对象

' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
_文本 = “134+ccc(aaa,450,480)”
快速文本对象.置文本 (_文本)
快速文本对象.替换子文本 (“aaa”, “0”, 12, , 真)
调试输出 (快速文本对象.取文本 (, ))


作者: chriscp    时间: 2023-6-12 15:01
咸鱼666 发表于 2023-6-12 13:45
发现个bug,替换子文本的起始替换位置有问题

.版本 2

已经修复  最新版发布在gitee
作者: 咸鱼666    时间: 2023-6-12 23:13
chriscp 发表于 2023-6-12 15:01
已经修复  最新版发布在gitee

新bug
快速文本对象.置文本 (“dsadas”, “11”)
快速字节集对象.置字节集 ({ 1 }, { 2 })
都不支持无限参数
作者: kanhaiyouyue    时间: 2023-6-13 23:18
本帖最后由 kanhaiyouyue 于 2023-6-14 10:34 编辑

置文本,置字节集,这个算bug吗?????
    只有第一个文本有效,后面都没效

bug.jpg (29.18 KB, 下载次数: 2)

bug.jpg

作者: chriscp    时间: 2023-6-14 13:23
咸鱼666 发表于 2023-6-12 23:13
新bug
快速文本对象.置文本 (“dsadas”, “11”)
快速字节集对象.置字节集 ({ 1 }, { 2 })

其实这个问题早就知道了   只是一直懒得弄   已更新  
作者: 咸鱼666    时间: 2023-6-14 14:08
chriscp 发表于 2023-6-14 13:23
其实这个问题早就知道了   只是一直懒得弄   已更新

新版本静编提示
commobj_static.lib(commobj_text.cpp.obj) : warning LNK4044: unrecognized option "FAILIFMISMATCH:_CRT_STDIO_ISO_WIDE_SPECIFIERS=0"; ignored
commobj_static.lib(commobj_dllMain.cpp.obj) : warning LNK4044: unrecognized option "FAILIFMISMATCH:_CRT_STDIO_ISO_WIDE_SPECIFIERS=0"; ignored
commobj_static.lib(bstrview.cpp.obj) : warning LNK4044: unrecognized option "FAILIFMISMATCH:_CRT_STDIO_ISO_WIDE_SPECIFIERS=0"; ignored
commobj_static.lib(bstrwrap.cpp.obj) : warning LNK4044: unrecognized option "FAILIFMISMATCH:_CRT_STDIO_ISO_WIDE_SPECIFIERS=0"; ignored
commobj_static.lib(fne.cpp.obj) : warning LNK4044: unrecognized option "FAILIFMISMATCH:_CRT_STDIO_ISO_WIDE_SPECIFIERS=0"; ignored
作者: chriscp    时间: 2023-6-14 14:49
咸鱼666 发表于 2023-6-14 14:08
新版本静编提示
commobj_static.lib(commobj_text.cpp.obj) : warning LNK4044: unrecognized option "FA ...

这个不影响编译  
作者: 咸鱼666    时间: 2023-6-14 15:00
chriscp 发表于 2023-6-14 14:49
这个不影响编译

这个如果能去掉后面还是去掉吧,不然有时候可能以为出什么bug了
作者: chriscp    时间: 2023-6-14 15:11
咸鱼666 发表于 2023-6-14 15:00
这个如果能去掉后面还是去掉吧,不然有时候可能以为出什么bug了

去掉比较麻烦 还得改lib里每个obj
作者: chriscp    时间: 2023-6-14 16:02
咸鱼666 发表于 2023-6-14 15:00
这个如果能去掉后面还是去掉吧,不然有时候可能以为出什么bug了

我已经决定放弃开发此支持库了  如果还有bug  不用再反馈了




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4