热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

高性能与可扩展

性能低主要是由于IO操作导致的延迟,导致了等待CPU很闲,处理速率却上不去解决办法:减少IO操作:加入缓存来缓解IO操作A

性能低主要是由于I/O操作导致的延迟,导致了等待
               ==>CPU很闲,处理速率却上不去


解决办法:

减少I/O操作:

加入缓存来缓解I/O操作

  • AppFabric或Memcached

让出主线程,开启单独线程来处理I/O操作(主线程就能处理更多的IIS请求)

  • PageAsyncTask, Parallel

把大面积的数据(比如某字段中保存了1w个字符串,并且select了多行...OMG!),压缩后保存到磁盘,也能减少I/O消耗的时间

  • ICSharpCode.SharpZipLib.dll

如果系统是分多个物理计算机通信的,也要压缩message的内容,比如WCF

  • 自定义MessageFormatter实现序列化后的压缩和发序列化前的解压缩

可是,问题又来了:

CPU现在很高了,咋办?

那么又要来解决办法了:

使用IIS7的ARR(Application Request Routing)来解决

 

可扩展是考虑未来一段时间而提出的部分提前设计概念,一般用得多的是在框架平台中,抽象的说法就是:抽象+隔离具体实现+暴露热点

抽象:桥接模式、模版模式

隔离具体实现:定义接口、使用接口、然后啥都不做,就等着别人去实现...

暴露热点:就是钩子,提供默认实现,允许别人自定义

例子(记录日志):

只要写个ILog接口,提供一个方法Write(str),然后就用吧,别管其他的了,管它是写文件?写db?写msmq?写service broker?写window事件?在当前计算机上写?在其他计算机上写?都不管,这里只管调用

具体咋处理完全不管,让应该管的去管吧,够抽象了吧,够隔离了吧,够暴露...

 

这次确实没啥料,就免点“推荐”了...

 



推荐阅读
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • 本文详细介绍了笔记本电脑上多种实用的快捷键,包括屏幕调整、图形设置、分辨率更改、驱动更新、导航操作、音量控制及屏幕锁定等,旨在帮助用户更高效地使用笔记本电脑。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 如何高效解决Android应用ANR问题?
    本文介绍了ANR(应用程序无响应)的基本概念、常见原因及其解决方案,并提供了实用的工具和技巧帮助开发者快速定位和解决ANR问题,提高应用的用户体验。 ... [详细]
  • 高效的JavaScript异步资源加载解决方案
    本文探讨了如何通过异步加载技术处理网页中大型第三方插件的加载问题,避免将大文件打包进主JS文件中导致的加载时间过长,介绍了实现异步加载的具体方法及其优化。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
author-avatar
小白
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有