首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

系统架构师论文-论软件设计模式的应用

本人2004年有幸参加了中国石油集团的高性能数控测井系统项目的开发研制工作。该系统是在当前测井成套测井装备的基础上,为了满足高精度,高性能,高效率的要求开发的测井系统。该系统由井下成套仪器,测井遥测系统,测井地面系统,测井软件系统,测井解释评价系统等子系统组成。本人在其中主要是负责测井软件系统的分析、设计以及部分开发任务。设计模式是前人设计面向対象软件的经验和总结,在软件设计中灵活的使用设计模式可以极大的提高系统的稳定性,可扩展性,以及良好的可维护性。本文描述了在测井软件系统开发过程中,如何分析和发现相关模式,以及如何选择和应用设计模式,特别是介绍了 MVC模式在软件框架和相关系统模块中的应用和使用效果。在文章的最后,讨论了在实际项目开发中,设计模式应用的有关想法和教训。

01

Python & C++ - pybind11 实现解析

IEG 自研引擎 CE 最早支持的脚本是 Lua, 在性能方面, Lua是有一定优势的. 但除此之外的工程组织, 以及现在即将面临的 AI 时代的语料问题, Lua 都很难很好的解决. 在这种情况下, 支持工程组织和语料更丰富的 Python, 就成了优先级较高的任务了. 由于Python的虚拟机以及相关的C API较复杂, 我们选择的方式是将 pybind11 - 一个Python社区知名度比较高, 实现质量也比较高的 Python 导出库与我们引擎的 C++ 反射适配的整合方式, 这样可以在工作量较小的情况下, 支持好 Python 脚本, 同时也能比较好的利用上引擎的C++反射实现. 在做好整合工作前, 我们肯定需要先较深入的了解 pybind11 的相关实现机制, 这也是本篇主要讲述的内容.

08

JVM监控及诊断工具

jstat用法 其中-gc可以换成-class 、-gcnew、-gcold等参数;而54992表示的JVM的进程id(可能通过上面的jps命令查看) ;4s表求每4秒打印一次,后面的3表求共打印三次。 打印的各参数含义如下: 1:S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used) 2:EC、EU:Eden区容量和使用量 3:OC、OU:年老代容量和使用量 4:MC、MU:元数据区容量和使用量 5:CCSC、CCSU:压缩类空间容量和使用量 5:YGC、YGT:年轻代GC次数和GC耗时 6:FGC、FGCT:Full GC次数和Full GC耗时 7:GCT:GC总耗时 jstat可以用来判断系统是否出现了内存泄漏,方法是通过一短长时间的观察OU的增长情况,如果OU稳定增长,则有可能出现内存泄漏。

02
领券