- 博客(11)
- 收藏
- 关注
原创 Ruby探针的基本实现原理
李哲 — MAY 13, 2015语言本身Ruby语言支持语法级别的系统,框架,甚至语言本身的方法复写,一般叫做元编程(meta programming), 此基础之上还有一些术语为mixin,方法的动态定义,运行时类改写等等,这些技术和机制可以让语言本身就能实 现其他语言需要字节码才能实现的功能,例如探针需要hook HttpRequest中的request方法,就可以通过下面的方式实现:clas
2015-05-14 22:43:36
886
原创 JAVA 异常对于性能的影响
陶炳哲 — MAY 12, 2015 在对OneAPM的客户做技术支持时,我们常常会看到很多客户根本没意识到的异常。在消除了这些异常之后,代码运行速度与以前相比大幅提升。这让我们产生一种猜测,就是在代码里面使用异常会带来显著的性能开销。因为异常是错误情况处理的重要组成部分,摒弃是不太可能的,所以我们需要衡量异常处理对于性能影响,我们可以通过一个实验看看异常处理的对于性能的影响。实验我的实验基于一段
2015-05-14 01:37:17
726
原创 APM for .NET评测系列:OneAPM vs SCOM
随着.NET技术的开源和推广,越来越多的企业选择使用.NET语言开发业务系统,其性能问题是大家共同面临的最棘手的问题。 笔者在此向大家分享一款国内还算靠谱的产品OneAPM,来管理业务系统的性能及Http ERROR。并从安装,性能,功能等几个方面与SCOM进行一个简要的对比。 安装 OneAPM:一键安装 OneAPM for .NET提供免费版和付费版。免费版开放了响应时间,ht
2015-05-12 23:16:01
806
原创 JAVA 异常对于性能的影响
陶炳哲 — MAY 12, 2015 在对OneAPM的客户做技术支持时,我们常常会看到很多客户根本没意识到的异常。在消除了这些异常之后,代码运行速度与以前相比大幅提升。这让我们产生一种猜测,就是在代码里面使用异常会带来显著的性能开销。因为异常是错误情况处理的重要组成部分,摒弃是不太可能的,所以我们需要衡量异常处理对于性能影响,我们可以通过一个实验看看异常处理的对于性能的影响。实验我的实验基于一段
2015-05-12 23:15:27
570
原创 运维神器-分分钟定位500错误!
做过运维的小伙伴都知道,当用户浏览器上出现白屏、应用端API得到500错误、取到数据为空是非常崩溃的一件事情。500错误是服务器端非常常见的一个错误,有可能是开发时导致的语法错误,也有可能是文件引用导致的错误。当用户反馈了 500 错误之后,而我们运维童鞋们面对一个集群的后端服务器,如果没有方便的工具管理和同步,下手查找问题,是一个即耗时又费力的痛苦过程。 在最开始的时候,每次遇到这种情况,我们运
2015-05-12 22:19:22
908
原创 Python Tricks 若干
Python Tricks 若干赵斌 — APRIL 29, 2015 在 python 代码中可以看到一些常见的 trick,在这里做一个简单的小结。json 字符串格式化在开发 web 应用的时候经常会用到 json 字符串,但是一段比较长的 json 字符串是可读性较差的,不容易看出来里面结构的。 这时候就可以用 python 来把 json 字符串漂亮的打印出来。root@Exp-1:/t
2015-05-08 18:31:33
609
1
原创 Python - 装饰器使用过程中的误区
Python - 装饰器使用过程中的误区曾灵敏 — APRIL 27, 2015装饰器基本概念大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验, Cache等。Python语言本身提供了装饰器语法(@),典型的装饰器实现如下: @function_wrapper def function():
2015-05-08 18:30:03
541
原创 NodeJS异常处理uncaughtException篇
NodeJS异常处理uncaughtException篇王龑 — APRIL 08, 2015很多 NodeJS 的开发者在抱怨异常处理太麻烦,我们会通过一些列博客梳理一下NodeJS中常见的异常处理的手段。 和大多数编程语言一样,在 NodeJS 里可以通过throw抛出一个异常:throw new Error('Catch me');为了捕获这个异常需要把代码包在Try Catch中:try{
2015-05-08 18:28:48
982
1
原创 Ruby中的语句中断和返回
Ruby中的语句中断和返回李哲 — APRIL 28, 2015 return,break,next 这几个关键字的使用都涉及到跳出作用域的问题,而他们的不同 则在于不同的关键字跳出去的目的作用域的不同,因为有代码块则导致有一些地方需要格外注意。return常用方式通常情况下的return语句和大家理解的意思是相同的。def m1 param if param == 1 return
2015-05-08 18:28:45
656
1
原创 为何响应时间常被测错
为何响应时间常被测错陶炳哲 — APRIL 09, 2015为何响应时间常被测错响应时间在许多情况下都是性能分析的基础。它们处于预期的界限内时,一切正常;而一旦过高,我们就得开始优化应用。因此响应时间在性能监测和分析中扮演着核心角色。在虚拟化和云环境中,它们也是您能得到的最准确的性能指标。但很多情况下,人们却以错误的方式测量并解释响应时间。为此我们有充足的理由来讨论响应时间测量以及如何对其进行解释这
2015-05-08 18:23:54
780
1
原创 Ruby中的Profiling工具
Ruby中的Profiling工具看看如何调试Ruby的性能问题李哲 — APRIL 08, 2015Ruby内置的profiler内置的profiler实现的很简单,在ruby2.2中只有150行代码,大家可以看看它的实现profile.rb 。内置的profiler使用起来非常的方便,只需要加上-rprofile参数即可。例如:执行: ruby -rprofile test.rb 输出
2015-05-08 18:22:27
771
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人