期货交易自动化论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 28|回复: 0

c/c++写的核心系统有实现交易动态调用的吗? - 金融行业 - ITPUB论坛-专业的IT技术社区

[复制链接] |主动推送

285万

主题

285万

帖子

855万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8553710
发表于 2022-9-11 08:19:33 | 显示全部楼层 |阅读模式
一般核心后台,若非大机,就是aix这类,编程语言应该以c/c++居多。当遇到外部发来的交易时,是逐个switch...去看还是能做到查表后动态加载调用?若是前者,等于说一个交易改掉,整个核心必须重新编译重启,后者貌似不存在这个问题。但后者,因为c/c++没有Java那种 Class.ForName.newInstance()按名字创建实例的做法,大家都是怎么实现的呢?动态库???
当然不可能去switch。。。
java的反射做法效率差一些。C/C++可以用动态库调用,这样就可以通过函数名去动态执行了。
C++还可以把交易做成派生类,继承于交易基类,统一调用接口,还能把大多数交易公共的逻辑写到基类中去,效果更好。
ascat 发表于 2011-10-12 15:16

还真是动态库?但听说挺脆弱的,真的有核心系统用这个dlopen...dlclose吗?
不知道这个脆弱你是从哪里听说的。系统里都大量使用了动态库,你看看/usr/lib里的一堆.so就知道了。
ascat 发表于 2011-10-12 15:16

还真是动态库?但听说挺脆弱的,真的有核心系统用这个dlopen...dlclose吗?
太老旧了,这种基于句柄的操作效率太差
pacman2000 发表于 2011-10-12 15:14

当然不可能去switch。。。
java的反射做法效率差一些。C/C++可以用动态库调用,这样就可以通过函数名去动态 ...
有啊,还真是switch,改一个交易就重新编译整个。

正在用呢
本帖最后由 pacman2000 于 2011-10-12 15:57 编辑
家住海淀 发表于 2011-10-12 15:44

太老旧了,这种基于句柄的操作效率太差
操作系统提供功能的原理就是如此。如果动态上面可以打点折扣,比如允许修改以后重新启动,那可以用编译时动态连接,不需要句柄。
不过即使是dlopen这套,也不见得效率太差,你可以设置这些动态库的粘滞位,让操作系统帮你常驻内存就是了,不会需要去读硬盘。如果不设的话,文件系统一般也会把常用的文件缓存到内存的。
einsta 发表于 2011-10-12 15:53

有啊,还真是switch,改一个交易就重新编译整个。 正在用呢
呵呵,这种也见过,十几年前的系统啦!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|期货交易自动化论坛

GMT+8, 2025-8-27 07:51 , Processed in 0.108985 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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