JAVA的字符串拼接与性能

本文主要研究的是JAVA的字符串拼接的性能,原文中的测试代码在功能上并不等价,导致concat的测试意义不大。不过原作者在评论栏给了新的concat结果,如果有兴趣的同学建议自己修改代码测试。



你必须知道的5个JVM命令行标志

本文是Neward & Associates的总裁Ted Neward为developerworks独家撰稿“你不知道5个……”系列中的一篇,JVM是多数开发人员视为理所当然的Java功能和性能背后的重负荷机器。然而,我们很少有人能理解JVM是如何进行工作的—像任务分配和垃圾收集、转动线程、打开和关闭文件、中断和/或JIT编译Java字节码,等等。

不熟悉JVM将不仅会影响应用程序性能,而且当JVM出问题时,尝试修复也会很困难。

本文将介绍一些命令行标志,您可以使用它们来诊断和调优您的Java虚拟机性能。


bigpipe框架应注意大数据填充引起GC线程阻塞。

 今日,我也在考虑是不是要来点干货了。从传统的OA系统开发进入到互联网企业也有半年了。也该和大家分享一下近半年来的收货。

 

首先讲讲BigPipe,好像还有蛮多大并发,访问量的网站采用这样的一种技术。不过我们最近在试用的时候遇到一个问题。BigPipe框架在向前台输出数据的时候造成了内存泄露,大量的GC线程阻塞。这其实是因为BigPipe本身对于大数据的处理上不够,这时候我们就该定位到哪个LIst,或者是其他的变量很大。如果超过10M 同时网站的并发量在3000+  那么就会造成宕机,服务器挂掉。在日志中显示的可能就是大量的GC线程阻塞,内存溢出。、


利用单例模式的提升系统整体性能

     问题:如果在WebForm页面周期中如果一个对象频繁创建,请求结束后又进行销毁肯定会对系统产生一定的性能影响,我们都知道,当我们每次new一个对 象时,其都在内存中指定的堆上分配一块空间,那么创建这个对象然后销毁(Response.End()执行后)这个对象肯定要消耗服务器的时间及空间(尤 其是并行请求数量很大的时候,撑破内存也不是不可能),因为每个请求都会建这个对象。然后大家有没有注意到,有些类可能是这样的,


Nginx反向代理+负载均衡+健康探测+缓存

正向代理是一个位于内网客户端和外网原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标,然后由代理服务器向 原始服务器转交请求并将获得的内容返回给客户端。正向代理一般用在为防火墙内的局域网客户端提供Internet访问。透明代理还允许客户端通过它访问任 意网站并且隐藏自身的代理服务器身份。

反向代理则是提供外部网络访问内部服务器资源的一种手段,对于外部网络客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端 向反向代理的命名空间中的内容发送普通请求,反向代理将判断向何处转交请求,在下面这个例子中就是nginx向后方的lamp转交,并将获得的内容返回给 客户端。反向代理一般用在将防火墙后面的服务器资源提供给Internet用户访问。而且反向代理对外都是透明的,访问者并不知道其访问的是一个代理。


php的memcache和memcached使用分析

起3个实例7600,7602,7603

www 

     5041 0.0 0.0 71328 2096 ?       Ssl 09:25  0:00 /usr/local/sinasrv2/bin/memcached -u www -d -m 10 -c 10000 -l 127.0.0.1 -p 7603
www     18842 0.0 0.0 71328 2084 ?       Ssl Feb06  0:00 /usr/local/sinasrv2/bin/memcached -u www -d -m 64 -c 10000 -l 127.0.0.1 -p 7600
www     30817 0.0 0.0 136716 2108 ?       Ssl 09:04  0:00 /usr/local/sinasrv2/bin/memcached -u www -d -m 10 -c 10000 -l 127.0.0.1 -p 7602

memcached的进程和多线程:详情请看memcache的安装文件下的threads.txt文件

默认情况下memcached是编译为一个单线程的应用。这是大多数CPU高效的运作模式,它是适当的缓存的情况下,在单处理器服务器上运行的要求或体积足够低,可用的CPU功率不是一个瓶颈更多地使用memcached实例可以从多线程模式效益。

要启用,使用“——使线程”选项来配置脚本:配置——使线程。你必须有POSIX线程函数pthread_ *)在为你的系统使用memcached的多线程式。一旦你有一个线程能够memcached的可执行文件,您可以控制线程数,用“T”选项默认值是4在一台机器这是献给memcached通常会想要个线程每处理器核心。由于memcached的无阻塞架构,没有真正的优势,利用比机器上的CPU数量更多的线;这样做会增加锁争用可能会降低性能



Memcached连接超时故障排除

 

在一次例行检查日志的时候,发现Nginx日志中出现了大量的PHP连接Memcached超时的报错信息,如下:


谈谈:使用memcached进行内存缓存

 通常的网页缓存方式有动态缓存和静态缓存等几种,在ASP.NET中已经可以实现对页面局部进行缓存,而使用memcached的缓存比ASP.NET的局部缓存更加灵活,可以缓存任意的对象,不管是否在页面上输出。而memcached最大的优点是可以分布式的部署,这对于大规模应用来说也是必不可少的要求。