
性能优化
formiss
这个作者很懒,什么都没留下…
展开
-
Web性能优化方案
第一章 打开网站慢现状分析在公司访问部署在IDC机房的VIP网站时会感觉很慢。是什么原因造成的?为了缩短页面的响应时间,改进我们的用户体验,我们需要知道用户的时间花在等待什么东西上。 可以跟踪一下我们的登录页面,如下图所示 从上图我们可以分析知道,HTML文档只占了总响应时间的20%,其它80%响应时间用来下载JS、CSS、图片等组件。所以WEB前端有很大的优化空间,转载 2012-12-06 11:36:25 · 526 阅读 · 0 评论 -
关于性能调优
概述=========性能是指程序的处理效率无法达到预期值. 导致性能问题的原因总的分为两种, 外部原因和内部原因. 内部原因是指程序代码本身有问题, 无法高效地利用资源来完成计算. 外部原因是指程序代码以外的因素, 比如硬件配置和程序的负载. 解决性能问题的关键在于把瓶颈找出来, 然后消灭瓶颈. 预备==========为了防止进入永无止境的性能优转载 2014-04-18 16:32:24 · 698 阅读 · 0 评论 -
Crash dump中需要重点关注的信息
Crash都是发生在某一函数中, 而95%的crash都是由下面两种情况中的一种导致的:发生crash的函数获得了错误的参数.发生crash的函数使用了损坏了的内部数据.代码的执行过程是对数据进行变化的过程. 对同一段代码, 在相同环境下, 如果使用的数据都相同, 那么执行的结果肯定是唯一的. 如果函数发生崩溃, 那么肯定是使用到的数据跟理想情况有差别. 函数使用的数据来源: 一是函数转载 2014-04-18 16:38:34 · 883 阅读 · 0 评论 -
对待问题的正确态度
如果在排错开始前, 调试着已经存在畏惧心理, 那么是不可能找到问题真相的. 下面的几点可以帮助调试者克服这样的畏惧情绪. 屡试不爽的方法============无论多么复杂的程序, 总可以被简化. 我们可以先把程序的功能砍掉一半, 看看问题是否会发生, 以此来缩小问题的范围. 重复使用这样的二分法, 总可以把程序简化到只剩一行代码. 因此, 无论什么问题, 都可以用这样的方法来解决转载 2014-04-18 16:45:42 · 1999 阅读 · 0 评论 -
通过简单Dump能获得的基本信息
如果有出错程序的dump, 哪怕dump不是在合适的时机获取的, 也可以分析出有用的信息.通过vertarget查看系统版本和系统运行了多长时间.通过!peb查看环境变量的情况. 由于很多第三方软件都习惯把自身路径添加到环境变量中, 所以这里很多时候可以看出一些已经安装的软件.同时还能看到当前进程所加载的DLL和对应路径.检查DLL和对应路径时, 可以重点检查如下的一些项目:有转载 2014-04-18 16:43:01 · 1220 阅读 · 0 评论 -
缩小排错的范围
把问题的范围尽量缩小能够让排错事半功倍. 问题发生的规律和特定的环境往往就隐含了导致问题的原因. 下面是一些能够帮助缩小排错范围的checklist. 排错前浏览一遍这些问题, 说不定就有额外的发现.1.是否打上了最新的补丁? 2.是否查询了support.microsoft.com, 有没有遇上已知的问题? 有没有hotfix可转载 2014-04-18 16:47:35 · 1209 阅读 · 0 评论 -
软件开发中常见的十大系统瓶颈
软件开发中常见的十大系统瓶颈发表于2012-11-06 16:32|19757次阅读| 来源优快云编译|2 条评论| 作者张红月架构软件开发摘要:在平时开发工作中,你可能在开发的各方面遭遇瓶颈,比如性能、系统等。你有对它们进行过归纳吗?不妨来看看本文对这些系统瓶颈的归类吧!在Zen And The Art Of Scaling - A Koan And Epigr转载 2013-04-10 17:22:57 · 1042 阅读 · 0 评论 -
用.net写的windows服务无法自动启动。
用.net写的windows服务无法自动启动。 可以先看日志中的描述进行判断问题。随windows自动启动时总是启动不了,windows日志中有两个错误,描述是:1:等待 MyService 服务的连接超时(30000 毫秒)。2:由于下列错误,MyService 服务启动失败: 服务没有及时响应启动或控制请求。等windows启动后用手工启动服务时一切正常。转载 2013-01-18 10:32:56 · 6395 阅读 · 0 评论 -
.NET 分代垃圾回收
.NET框架包含一个托管堆,所有的.NET语言在分配引用类型对象时都要使用它。像值类型这样的轻量级对象始终分配在栈中,但是所有的类实例和数组都被生成在一个内存池中,这个内存池就是托管堆。.NET框架中的垃圾回收器被称为分代的垃圾回收器(Generational Garbage Collector),也就是说被分配的对象划分为3个类别,或称为“代”。分别为0,1,2。0、1、2代对应的托管堆的初转载 2013-01-16 10:56:30 · 1374 阅读 · 1 评论 -
使用 .Net Memory Profiler 诊断 .NET 应用内存泄漏(方法与实践)
做过应用诊断与优化的朋友都知道内存泄漏和带来的危害,对这种情况的分析和定位一般会比较困难,尤其在 .NET/Java 应用中,隐式的堆内存管理以及托管对象间纷繁复杂的引用关系,使分析和定位问题更加复杂。本文以我的了解,尽量说明了: 一种对 .NET/Java 托管内存类应用的内存泄漏分析和诊断方法;使用 .Net Memory Profiler 工具对一个真实 ASP.NET 应用中转载 2013-01-16 10:51:40 · 7823 阅读 · 1 评论 -
.NET 内存泄露
Fabrice Marguerie是一位软件架构师和咨询师,他在MSDN发表了如何检测和避免.NET程序内存与资源泄漏的文章。此文章描述了编写.NET程序时可能发生的内存与资源泄漏,以及如何避免这些泄漏。C#这样的编程语言使用垃圾收集器来清理内存,对于程序完全不会再访问的内存,本应是没有内存泄漏的。Fabrice称,内存泄漏发生在一块内存不 再被使用,但却依然被程序所引用时。当一块内存无法被程转载 2013-01-16 10:50:07 · 1128 阅读 · 0 评论 -
.Net 缓存依赖详解
缓存命名空间的讲解流程16.1 System.Web.Caching简介本节从缓存命名空间的总体简介和组成结构入手,从整体上对System.Web.Caching进行概述。16.1.1 System.Web.Caching概述System.Web.Caching 是用来管理缓存的命名空间。缓存就是将服务器端的数据暂时保存在客户端,方便用户的读取。缓存命名空间的父级空转载 2013-01-11 13:45:30 · 4785 阅读 · 1 评论 -
页面缓存的实现
前面讲了如何使用页面缓存,现在接着学习一下如何使用数据缓存,在讲数据缓存之前还要先说一下如果在页面中使用参数缓存。 前面讲过一个缓存设置VaryByParam="none"为无参数,我们也可以对VaryByParam进行设置,设置的参数与随 GET 方法属性发送的查询字符串值对应,或与使用 POST 方法发送的参数对应。将该属性设置为多个参数时,对于每个指定参数组合,输出缓存都包含一个不同版本的请转载 2013-01-11 13:49:38 · 2511 阅读 · 0 评论 -
windows下如何查看磁盘IO性能
windows下如何查看磁盘IO性能通常,我们很容易观察到数据库服务器的内存和CPU压力。但是对I/O压力没有直观的判断方法。磁盘有两个重要的参数:Seek time、Rotational latency。正常的I/O计数为:①1000/(Seek time+Rotational latency)*0.75,在此范围内属正常。当达到85%的I/O计数以上时则基本认为已经存在I/O瓶颈转载 2013-01-24 17:03:31 · 73475 阅读 · 0 评论 -
导致性能问题的常见情况
导致性能问题的常见情况下面列出一些导致性能问题的常见情况.程序负荷太重, 导致硬件成为性能瓶颈.观察到CPU利用率一直很高, 响应时间岁负荷增加而变长. 当负荷降下来后, 性能又恢复正常. 如果负载的确超过了程序的承受能力, 解决的办法是升级硬件, 或者增加服务器节点, 用负载均衡吧负载分担到多个点上.数据库无法及时返回查询结果, 导致请求无法及时完成.应用服务器上的CPU利用转载 2014-04-18 16:36:21 · 1577 阅读 · 0 评论