`
langyu
  • 浏览: 889711 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

我所认识的软件开发原则:减少等待时间

阅读更多
        在系统或设备交互时,因处理效率不一致,经常会导致等待的发生。最初这种矛盾在计算机内部尤为突出。高速CPU与低速外部设备之间数据处理的频率差异,使CPU在绝大部分的时间周期内不做任何事情。计算机专家不能允许这种无谓浪费,异步处理模型被引入。

        其实在与计算机相关的域模型中,频繁等待的不至CPU。使用计算机系统的人,等待数据库中数据的应用程序,等待网络返回的浏览器。在等待的过程中,这些域模型可能什么事也不会做。相似的场景反复出现,就迫切地需要我们减少等待时间,提高利用率。

        为了实现这样的目标,我们需要关注当前的三大主流思想:多线程,缓存和异步模型。它们的出发点和使用场景不同,但都会缩短等待时间。下面针对这三种思想做大致分析。

多线程

        对于一个耗时或是大数据量的任务,在单线程执行时,我们在等待结果,高速CPU在等待执行数据。为了减少这种等待,用多个线程来分段执行任务,缩短等待结果的时间,在一定程度上提高CPU的利用率。

        当然多线程更适用于多个各异任务同时执行,在系统中适时分摊各个任务执行的时间和占用的资源,以达到资源的有效利用。

        对于多线程大家了解的很多,这里算是简略提到。

缓存

        有人甚至这样说,Web2.0的特点就是缓存,对于这种理解深以为然。基于网络的应用需要跨越浏览器、网络、服务器和数据库等一系列基础设施,在每一点上都有很多操作流程和逻辑处理。所以缓存-把数据送到离用户最近的地方-的理念大行其道。浏览器存储着最近访问过的内容,用户请求被分发到离用户最近的CDN,对网络应用的每个请求都要经过Squid,应用所需要的数据库中的常用数据存放在Memcached中,以及其它各式各样的缓存模型。这些各式各样的缓存构建于终端用户于系统应用之间。每层缓存所支撑的,就是当前缓存的目标用户。

        当然不至这些,有同样目的的众多应用或是硬件都叫缓存。在减少“用户”等待方面起着极其重要的功能。

异步

        多年来我们的程序基本是同步执行。异步模型没能正常推广的原因有如下原因,一是异构的系统设计复杂,出现的比较少;二是很少有像CPU与外部设备在处理频率上的极大矛盾;三是异步模型本身的技术要求很高。

        但当前异构系统不断涌现,随之而来的是众多的RPC框架。在高层系统交互之间实现的异步模型,可以有效降低系统等待时间,减少系统耦合度。在更低层,模块或是代码级的异步处理变得越来越重要。对于Java来说, Java Concurrent API 对于异步模型的成长起着推波助澜的作用。

        与前两个主要点的普及度相比,异步模型正不断走向前台,必将成为未来的主流技术。

        出来混迟早是要还的。使用这些模型本身是一种高风险投资,伴随着处理效率提高、等待时间降低等优点,技术和实现难度将成为是否选择的一个很大权衡点。如多线程并发可能会出现很难琢磨的异常情况,多级缓存间的数据同步问题,异步系统的执行监控问题等等。但之前的很多普通技术已经很难有潜力去挖掘来提高系统效率,本着技术创新的角度,我们应当在这些新的主流思想上有所作为。




我所认识的软件开发原则:权衡
我所认识的软件开发原则:封装
我所认识的软件开发原则:简单表述
我所认识的软件开发原则:二八原则
0
0
分享到:
评论

相关推荐

    浪费的认识(ppt 47).pptx

    此外,现代工业工程(IE)提出的七大浪费包括过量生产、等待时间、运输、过度加工、库存、动作和缺陷。这些浪费类型与全面生产系统的浪费概念相呼应,强调了生产过程中的各种无效活动。 总结来说,理解并减少浪费是...

    医院HIS系统基本需求分析

    3. **性能较好**:提高系统的响应速度和处理能力,减少等待时间。 4. **易于移植**:确保系统可以在不同的硬件环境下运行。 5. **低维护费**:简化系统的后期维护工作,降低运营成本。 6. **按时完成开发工作**:...

    软件工程-理论与实践(许家珆)习题答案

    而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术 不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力、财力, 而在开发过程中就夭折。软件危机主要表现在两个方面: (1) ...

    时间片轮转算法

    通过分析和理解这个程序,我们可以深入学习操作系统的设计原则,了解如何在软件层面实现进程调度,并对时间片轮转算法有更直观的认识。这不仅有助于提升编程技能,也有助于理解和解决与系统性能相关的复杂问题。

    网络工程师试题 2010 上半年

    【网络工程师试题 2010 上半年】的考试内容主要涵盖了计算机...这些知识点体现了网络工程师需要具备的综合技术能力,包括计算机体系结构的理解、项目管理和软件开发流程的掌握,以及对网络协议和资源管理的深入认识。

    多线程编程指南

    ### 多线程编程指南知识点概述 ...综上所述,多线程编程是软件开发中一个复杂而重要的主题,它涉及到多方面的技术和设计考虑。正确理解和应用多线程编程的原则和技巧对于开发高效稳定的软件系统至关重要。

    80道经典常见测试面试题.docx

    - **核心知识点**:软件开发和测试的一般流程。 - **详细解释**:包括需求分析、设计、编码、测试和维护等阶段。面试者需要清楚说明各阶段的参与者以及他们的职责。 ### 29. 软件测试的理解 - **核心知识点**:...

    山东大学操作系统考点.docx

    - **最高响应比优先(HRRN)**:综合考虑等待时间和服务时间,适用于批处理系统。 - **优先级调度**:高优先级进程优先执行,但可能导致低优先级进程饿死。 - **时间片轮转(RR)**:每个进程轮流获得一定时间的CPU使用...

    现场管理之浪费的认识

    为了减少这些浪费,现场管理者可以采用精益管理和持续改进的方法,如丰田生产系统中的七大浪费原则(过度生产、等待、运输、过度加工、库存、动作、制造不良品),以及敏捷开发中的迭代和反馈机制。通过定期评估和...

    GNU 编码标准.pdf

    综上所述,《GNU编码标准》涵盖了软件开发过程中诸多关键方面的要求和建议,不仅对GNU项目本身具有重要意义,也为开源社区乃至整个软件行业树立了高标准。遵循这些指导原则,可以帮助开发者编写出更加健壮、可靠且...

    java面试题

    我的编程风格主要遵循以下几个原则: - **简洁性**:代码应当简洁明了,避免不必要的复杂性。 - **可读性**:良好的命名习惯,注释充分但不过度。 - **可维护性**:采用模块化设计,确保代码易于维护。 - **面向...

    2021公司精益生产体会.docx

    在体检中心,排队等待被视为理所当然,人们很少去思考是否可以通过流程优化来减少等待时间。同时,依赖新设备的引进来提高效率,而忽视了对现有资源的整合和优化使用。 面对这些浪费,我们采取了一系列的改进措施。...

    认识浪费与效率PPT

    在IT行业中,优化效率和消除浪费是至关重要的主题,尤其在软件开发、项目管理以及整个企业运营中。"认识浪费与效率PPT"的主题显然旨在帮助我们理解和改善工作流程,以实现多、快、好、省的目标。在这个PPT中,我们...

    2620彩扩机说明书

    5. 系统响应时间:系统应快速响应用户的操作,避免延迟和等待感。 6. 出错信息和警告:错误信息应清晰、明确,指导用户解决问题。 7. 信息显示:信息应简洁、准确,避免引起混淆。 8. 数据输入:提供有效的输入验证...

    二十三种设计模式【PDF版】

    主要是介绍各种格式流行的软件设计模式,对于程序员的进一步提升起推进作用,有时间可以随便翻翻~~ 23种设计模式汇集 如果你还不了解设计模式是什么的话? 那就先看设计模式引言 ! 学习 GoF 设计模式的重要性 ...

    C++MFC教程

    以下是我在最初学习VC时所常用的开发思路和方法,希望能对初学VC的朋友有所帮助和启发。 1、开发需要读写文件的应用程序并且有简单的输入和输出可以利用单文档视结构。 2、开发注重交互的简单应用程序可以使用对话框...

    ORACLE9i_优化设计与系统调整

    §6.2.10 步骤10:优化所采用的平台 89 §6.3 应用优化方法 90 §6.3.1 设定明确的优化目标 90 §6.3.2 创建最少可重复测试 90 §6.3.3 测试假想 90 §6.3.4 记录和自动测试 90 §6.3.5 避免常见错误 90 第二部分 ...

Global site tag (gtag.js) - Google Analytics