递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 23089|回复: 33
打印 上一主题 下一主题

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

[复制链接]

53

主题

628

帖子

2662

积分

禁止发言

积分
2662
跳转到指定楼层
楼主
发表于 2023-8-3 00:41:17 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

25

主题

499

帖子

1838

积分

金牌会员

Rank: 6Rank: 6

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

交换变量指针 还牵扯到一个问题,指针的申请与释放的问题,不同语言指针的申请可能使用的不是同一堆,释放就会导致问题
回复

使用道具 举报

29

主题

2245

帖子

8093

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8093
33#
发表于 2023-8-6 08:36:18 来自手机 | 只看该作者
793359277 发表于 2023-8-5 23:29
奇怪了,我那天也是这样的代码,但是经常因为创建失败直接导致崩溃,下边的代码都没机会执行就蹦了,偶尔 ...

之前创建失败可能是系统资源(内存、句柄等)不足,大概你之前执行的程序有句柄或内存泄漏。
现在电脑重启了,那就正常了。
私信没看到,可能丢失数据了。
回复

使用道具 举报

29

主题

352

帖子

2505

积分

金牌会员

Rank: 6Rank: 6

积分
2505
32#
发表于 2023-8-5 23:29:22 | 只看该作者
Xelloss0618 发表于 2023-8-5 22:45
把你的例子发给我看看

奇怪了,我那天也是这样的代码,但是经常因为创建失败直接导致崩溃,下边的代码都没机会执行就蹦了,偶尔创建失败还执行完取最后错误,错误也是0,你可以看下私信。今天测试居然是正常的



回复

使用道具 举报

9

主题

165

帖子

1249

积分

金牌会员

Rank: 6Rank: 6

积分
1249
31#
发表于 2023-8-5 23:04:11 来自手机 | 只看该作者
看来过度封装都会多耗时间一点
回复

使用道具 举报

20

主题

380

帖子

3284

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

29

主题

2245

帖子

8093

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

29

主题

352

帖子

2505

积分

金牌会员

Rank: 6Rank: 6

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


回复

使用道具 举报

53

主题

628

帖子

2662

积分

禁止发言

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

使用道具 举报

29

主题

352

帖子

2505

积分

金牌会员

Rank: 6Rank: 6

积分
2505
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, 下载次数: 312)

QQ截图20230805202406.jpg

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

QQ截图20230805202232.jpg
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-14 01:48 , Processed in 0.103745 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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