递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
楼主: 呵呵仙8
打印 上一主题 下一主题

[视窗] 火山-交换变量()执行速度可否再加速?

[复制链接]

26

主题

322

帖子

2325

积分

金牌会员

Rank: 6Rank: 6

积分
2325
QQ
21#
发表于 2023-8-5 13:39:43 | 只看该作者
本帖最后由 793359277 于 2023-8-5 20:36 编辑
qaz2428119 发表于 2023-8-5 11:07
火山的文本是一个类,非直接数据指针,也就是文本数据指针是藏在类里的,好像没提供接口可以直接改变这个指 ...

取文本指针()
置文本指针()
取变量地址(文本变量)  变量地址+变整数大小*7内的值 即为文本指针地址
回复

使用道具 举报

25

主题

499

帖子

1838

积分

金牌会员

Rank: 6Rank: 6

积分
1838
22#
发表于 2023-8-5 14:16:44 | 只看该作者
793359277 发表于 2023-8-5 13:39
取文本指针()
置文本指针()
取变量地址(文本变量)  变量地址+变整数大小*8内的值 即为文本指针地址

还真没研究这些,你说的如果是真,那表面你认真研究了
回复

使用道具 举报

175

主题

1078

帖子

4461

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4461
QQ
23#
发表于 2023-8-5 16:57:03 | 只看该作者
水常流 发表于 2023-8-5 11:11
还真有,还有比这更大的,比如双色球

绝对是写法有问题,没明白交换变量的真实用意和使用场景
<strong><font color="Blue">全国会议活动直播拍摄、
回复

使用道具 举报

28

主题

2103

帖子

7663

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7663
24#
发表于 2023-8-5 17:06:25 来自手机 | 只看该作者
793359277 发表于 2023-8-5 13:39
取文本指针()
置文本指针()
取变量地址(文本变量)  变量地址+变整数大小*8内的值 即为文本指针地址

置文本指针会复制文本数据的,另外指针偏移取文本指针可能不准,因为文本型内部可能有一个字节集类
回复

使用道具 举报

26

主题

322

帖子

2325

积分

金牌会员

Rank: 6Rank: 6

积分
2325
QQ
25#
发表于 2023-8-5 20:12:57 | 只看该作者
本帖最后由 793359277 于 2023-8-5 21:24 编辑
Xelloss0618 发表于 2023-8-5 17:06
置文本指针会复制文本数据的,另外指针偏移取文本指针可能不准,因为文本型内部可能有一个字节集类 ...

piv线程池对象类创建大概率失败并且会伴随崩溃,很奇怪,啥时候修复一下,利快云有私信
回复

使用道具 举报

26

主题

322

帖子

2325

积分

金牌会员

Rank: 6Rank: 6

积分
2325
QQ
26#
发表于 2023-8-5 20:36:36 | 只看该作者
本帖最后由 793359277 于 2023-8-5 21:44 编辑
qaz2428119 发表于 2023-8-5 14:16
还真没研究这些,你说的如果是真,那表面你认真研究了

这里可以看出文本型在内存中是占了11*变整数大小的长度的 比如这个64位程序,调试输出 (取数据类型尺寸 (文本型)),会返回88 (11*8),那文本指针在变量地址+7*8处,取文本指针取的就是这个地方的值 (之前打错了打成*8),并且9*8处是文本长度(这里尾部额外带2个0),字节集类的长度的是7*8 ,+3*8处是字节集指针,+5*8是字节集长度(尾部多一个0)



QQ截图20230805202406.jpg (85.47 KB, 下载次数: 280)

QQ截图20230805202406.jpg

QQ截图20230805202232.jpg (78.68 KB, 下载次数: 281)

QQ截图20230805202232.jpg
回复

使用道具 举报

53

主题

628

帖子

2662

积分

禁止发言

积分
2662
27#
 楼主| 发表于 2023-8-5 20:39:20 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

26

主题

322

帖子

2325

积分

金牌会员

Rank: 6Rank: 6

积分
2325
QQ
28#
发表于 2023-8-5 22:02:27 | 只看该作者
qaz2428119 发表于 2023-8-5 14:16
还真没研究这些,你说的如果是真,那表面你认真研究了


回复

使用道具 举报

28

主题

2103

帖子

7663

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7663
29#
发表于 2023-8-5 22:45:29 | 只看该作者
793359277 发表于 2023-8-5 20:12
piv线程池对象类创建大概率失败并且会伴随崩溃,很奇怪,啥时候修复一下,利快云有私信 ...

把你的例子发给我看看
回复

使用道具 举报

18

主题

347

帖子

3097

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3097
30#
发表于 2023-8-5 23:01:40 来自手机 | 只看该作者
呵呵仙8 发表于 2023-8-5 20:39
真实用意和使用场景,就是要快.快速的交换堆栈指针.无需用三个变量去多次申请堆栈,复制字节集,释放堆栈!! ...

这个是不可能实现的,要知道火山pc是c++,而c是速度最快的,想要排序交换变量(文本等对象类型的直接取数据指针就行),然后相当于就是直接操作整数或长整数,速度肯定是无与伦比的,交换变量不想用3个变量直接位运算异或就行 ,再加上c++编译器强大的优化能力,保证会比易语言快的多。所以完全不用纠结这个交换变量速度的快慢,这个完全就是可有可无的一个命令
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-3-17 04:40 , Processed in 0.125542 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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