`
ijavagos
  • 浏览: 1191308 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

近期思考的对程序和系统的一些优化

阅读更多

1、我们各个模块间的通信一般是通过消息。在发送消息的地方,我们目前一般是发送时直接构造消息。这个方法有个不好的地方就是如果一个程序中有多个地方需要构造消息,则构造消息的代码会被重复多次,而且同样的事情散步在很多的地方,难于修改维护。所以必要明显的增加一个API层,负责从数据到消息包的转换。这样要更改包的定义只要修改指定的函数即可。但是如果将字段以参数传入,则可能会遇到一种情况——函数的参数会经常改变。这是一个问题。也许更改调用点是一个很笨但很现实的方法。
2、网元代理对外要发送很多消息,都是要发送指定的网元(全局只有一个)或板卡(如何定义板卡?可以理解为一个网元的多个设备中的一个。比如,AG是一个网元,它由很多的相同的AG板卡共同来构成的)的。可以将构造这些消息的函数作为网元类的方法。
3、将系统中各个程序中通用的部分抽取出来,用动态链接库做成一个公共的模块,供各个网元调用。比如,各个网元需要和网管系统进行通信,完成网管功能。则网管系统可以对网元提供网管功能API接口供网元调用,这样可以有效的去除重复,另外也方便进行调试。

4、应用存储过程
目前的问题,数据库中的数据往往被多个网元访问,而他们访问的方式时直接组装sql语句,然后进行数据库操作。这样整个数据库的结构就完全的暴露给多个客户端。
这样导致的问题是:
1)应用程序和数据结构耦合的太过紧密,对数据库结构的更改基本是不可能的(比如如果想把USER表根据tel字段进行分表,或者更改某字段的名称)
2)效率。复杂的数据操作效率会比较低。
3)同样的东西,可能要在不同的客户端重复几遍。造成了代码的重复。
可以使用存储过程来解决这个问题。
有一个问题就是,应用程序中对数据库的操作可能非常多,而且有的又非常小,完全更改为存储过程是否会造成存储过程过于膨胀,而且丧失了原有的简单明了性。
存储程序可以提供改良后的性能,因为只有较少的信息需要在服务器和客户算之间传送。代价是增加数据库服务器系统的负荷,因为更多的工作在服务器这边完成,更少的在客户端(应用程序)那边完成上。

在数据库和应用程序间做一个抽象层还是非常有必要的。

上面这些是我在开发和维护过程中发现的问题,这些想法不一定要马上实现,因为要考虑现实的因素。但是可以在下一个版本中进行优化。

分享到:
评论

相关推荐

    运用Python优化证素辨证心系疾病诊疗系统的思考.pdf

    运用Python优化证素辨证心系疾病诊疗系统的思考.pdf

    数据库系统概论(基础篇)教学大纲.docx

    为此我们针对课程知识点设置了相应的实验,锻炼学员实际动手能力,启发学员对理论知识的思考和理解,达到理论联系实际的教学效果。 课程大纲 第一讲:初识数据库系统 引言 数据库的4个基本概念 数据技术的产生,数据...

    第一讲-大型互联网项目架构设计实践及架构优化思路.pdf

    2、压测方案(发现系统问题,进行修复,调试)-- 分析当前系统性能瓶颈,解读一些 压测报告 3、服务器(tomcat 服务器,undertow 服务调优) 4、jvm 优化(详细讲解分析 jvm 优化方案) 5、数据库优化(连接池优化,...

    千博装饰建材装修网站系统 v2018 Build0801.zip

    易用:企业网站系统在开发过程中更全面而深入地思考了用户对程序的使用习惯及每个功能对用户的使用友好度等,通过众多人性化而便捷的细节设计来体现系统其良好的易用性。例如:右键快捷菜单操作、“开箱即用式”的N...

    Delphi5.X ADO/MTS/COM+高级程序设计篇

    3-11 结论 第4章 深入了解ADO 4-l AD0的Cursor Engine 4-2 ADO修改数据的流程 4-3 ADOExpress和AD0 4-4 ADO和BDE/IDA贝 4-5 ADO的执行效率 4-6 优化ADO的执行效率 4-7 结论 第5章 MTS/COM+和分布式多层应用系统 5-1...

    Delphi.5.X.ADO.MTS.COM+高级程序设计篇

    3-10 ADO和WebBroker应用程序 3-11 结论 第4章 深入了解ADO 4-l AD0的Cursor Engine 4-2 ADO修改数据的流程 4-3 ADOExpress和AD0 4-4 ADO和BDE/IDA贝 4-5 ADO的执行效率 4-6 优化ADO的执行效率 4-7 结论 第...

    操作系统(内存管理)

    不过,您可能没有用一些时间去思考它们在您的操作系统中是如何实现的。本节将向您展示 malloc 和 free 的一个最简化实现的代码,来帮助说明管理内存时都涉及到了哪些事情。 要试着运行这些示例,需要先 复制本代码...

    千博电子企业网站系统 电子企业网站源码

    易用:企业网站系统在开发过程中更全面而深入地思考了用户对程序的使用习惯及每个功能对用户的使用友好度等,通过众多人性化而便捷的细节设计来体现系统其良好的易用性。例如:右键快捷菜单操作、“开箱即用式”的N...

    千博制造模具网站系统 v2014 Build0802.zip

    易用:企业网站系统在开发过程中更全面而深入地思考了用户对程序的使用习惯及每个功能对用户的使用友好度等,通过众多人性化而便捷的细节设计来体现系统其良好的易用性。例如:右键快捷菜单操作、“开箱即用式”的N...

    千博装饰设计公司网站系统 v2015 Build0425.zip

    易用:企业网站系统在开发过程中更全面而深入地思考了用户对程序的使用习惯及每个功能对用户的使用友好度等,通过众多人性化而便捷的细节设计来体现系统其良好的易用性。例如:右键快捷菜单操作、“开箱即用式”的N...

    PHP WellCMS移动手机端CMS系统 v1.02.rar

    基于优秀的XiunoPHP开发,同时沿用了Xiuno bbs的精华之处,作者再次对核心进行了增强,在开发每个功能的时候,都经过细心思考,都是多年经验的提炼,绝非是写写代码而已。更多介绍请参考官方文档。

    深入理解Android:卷I--详细书签版

     第1章介绍了阅读本书所需要做的一些准备工作,包括对Android整个系统架构的认识,以及Android开发环境和源码阅读环境的搭建等。注意,本书分析的源码是Android2.2。  第2章通过Android源码中的一处实例深入地...

    SEM培训资料.docx

    搜索引擎 搜索引擎是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,为用户提供检索效劳的系统。当用户通过输入想要获取信息相关的关键词,并以浏览器等方式提交给搜索引擎...

    Android应用开发揭秘(pdf )

     相比,Androjd有着天生的优势一完全开放和免费,对广大开发者和手机厂商而言,这是何等的诱人!此外,在Google  和以其为首的Android手机联盟的大力支持和推广下,Android不仅得到了全球开发者社区的关注,而且一...

    ArchSummit深圳 2019年全球架构师峰会PPT合集(59份).zip

    10PB天日志系统设计和实现 专为物联网优化设计的大数据平台 中台技术架构实践与思考 直播前端工程体系实践 云上DevOps工具链架构实现 新趋势下架构师的机遇与挑战 小团队构建大网站之技术选型 小程序端到端全链路...

    C++编程进阶与高级特性深入解析 构建强大可靠应用的全面指南 课程+课件

    课程提供了丰富的实例和项目,让我有机会实践这些概念,并深入了解如何进行性能优化和错误处理。我学到了很多关于多线程编程和并发性的知识,使我能够更好地利用多核处理器和编写线程安全的代码。 这门课程给了我很...

    asp.net知识库

    DbHelperV2 - Teddy的通用数据库访问组件设计和思考 也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     16.3 一对多和多对多关联的检索策略  16.3.1 立即检索(lazy属性为“false”)  16.3.2 延迟检索(lazy属性为默认值“true”)  16.3.3 增强延迟检索(lazy属性为“extra”)  16.3.4 批量延迟检索和批量立即...

Global site tag (gtag.js) - Google Analytics