热部署选项
Options for hot deployment
我的要求是在不丢失当前状态(包括收集数据)的情况下,将代码更新无缝热部署到正在运行的服务。有没有什么c++框架可以用来开发这样的解决方案?
您可能应该阅读一些关于动态软件更新的研究论文,例如关于Kitsune(您可能会使用)
更新调用堆栈(以及本地变量中的实例)存在一个主要问题;另请阅读continuations;并且您可能有一些特殊情况(如果您的应用程序像大多数GUI应用程序一样是事件循环驱动的,那么您可能希望在事件处理程序的外部更新代码)。
您当然应该在设计的早期就考虑动态软件更新。也许是垃圾收集&持久性&序列化技术是相关的。
您的需求(在不丢失当前状态的情况下将代码更新无缝热部署到正在运行的服务)非常困难,需要大量工作;有趣的研究主题(这绝对是一门很好的博士课程)。
您可能想要使用自己的元编程技术,即通过自己的代码生成器生成大多数相关的C++支持代码。
如果你已经有了重要的代码库,你可以考虑用MELT定制最近的GCC编译器(例如,查询编译器的内部表示并从中生成一些代码),但即使这样也意味着要做很多工作-
PS。用比C++更好的东西编码,比如Erlang或Common Lisp,会降低你的目标难度。
相关文章:
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- Win32编译器选项和内存分配
- C/C++预处理器是否可以检测一些编译器选项
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 使用调试/崩溃报告将应用程序部署到客户端
- 通过选项卡的文本设置QTabWidget顺序
- 通过ccmake在cmake中缓存依赖选项
- 使用 mod_gsoap 部署服务时,如何在 Gsoap 中更改 soap 上下文的模式?
- 如何传递多个 std::文件系统选项?
- 基于编译器选项的编译二进制路径
- "perf_event_attr"结构的"read_format"属性的选项到底是什么?
- 如何应用 libcurl 的持久连接选项
- 文件中.dat Dlib 选项
- LLVM | codegen 用于带有命令行选项的程序输入功能
- 编译 Boost 时在 OS X 上的"ld:未知选项:-soname"
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- Visual Studio C++ 它只构建选项卡中显示的文件吗?
- 热部署选项
- 在我的项目中使用预编译的头(clang/llvm,但也使用gcc).如何在make中部署-include选项