并发本来就是个有意思的问题,尤其是现在又流行这么一句话:“高帅富加机器,穷矮搓搞优化”。从这句话可以看到,无论是高帅富还是穷矮搓都需要深入理解并发编程,高帅富加多了机器,需要协调多台机器或者多个CPU对共享资源的访问,因此需要了解并发,穷矮搓搞...
编程语言
首先要声明一下,这个案例在<深入理解JVM虚拟机>这本书中也提到过. 这本书是本人曾经学习JVM的第一本书.里面关于Heap的优化思想,来源于此.建议大家想学JVM原理的,可以找来此书看看. 写这篇文章,是因为最近在给一个社交网站服务器做调优,突然觉得本人机器...
其实对于各位同行一般理解的计算机内存,它算是CPU与计算机打交道最频繁的区域,所有数据都是先经过硬盘至内存,然后由CPU再从内存中获取数据进行处理,又将数据保存到内存,通过分页或分片技术将内存中的数据再flush至硬盘。那JVM的内存结构到底是如何呢?JV...
在这篇文章里本人将教会你如何分析JVM的线程堆栈以及如何从堆栈信息中找出问题的根因。在本人看来线程堆栈分析技术是Java EE产品支持工程师所必须掌握的一门技术。在线程堆栈中存储的信息,通常远超出你的想象,各位同行可以在工作中善加利用这些信息。 本人...
死锁是指,两个或多个动作一直在等待其他动作完成而使得所有动作都始终处在阻塞的状态。想要在开发阶段检测到死锁是非常困难的,而想要解除死锁往往需要重新启动程序。更糟的是,死锁通常发生在负载最重的生产过程中,而想要在测试中发现它,十分不易。之所以...
八年的坚持敌不过领导的固执,最终还是不得不阔别已经成为我第二语言的C#,转战Java阵营。有过短暂的失落和迷茫,但技术转型真的没有想象中那么难。回头审视,其实单从语言本身来看,C#确实比Java更优秀(并非C#天生丽质,而是它站在了巨人的肩膀上)。 本文...
iText iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText...
在企业应用系统领域,会面对不同系统之间的通信、集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越重要。其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方,比如发送短信,邮件提醒,更新文章阅读计数,记录用户操作...
这是对MySQL进行加密性能测试的两篇文章系列之二。在第一篇中,我专门使用MySQL的内置的对SSL的支持来 做压力测试,产生了一些令人惊讶的结果。当然,使用SSL查询的吞吐性能要比不使用SSL的性能低这也在意料之中,但是我相当惊讶的是,主要的性能瓶颈是 花费...
ITJS的这篇文章是Neward & Associates的总裁Ted Neward为developerworks独家撰稿“你不知道5个……”系列中的一篇,JVM是多数开发人员视为理所当然的Java功能和性能背后的重负荷机器。然而,各位同行很少有人能理解JVM是如何进行工作的—像任务分配和垃圾...
ITJS的这篇文章是一些最实用、最齐全、最省时间的 Eclipse 快捷键总结,这些快捷键可以让帮助你完成工作中的任罕救嘶个操作。欢迎参考。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任罕救嘶个文件...
Java 8支持default方法,ITJS的这篇文章也主要来讲解一下Java 8中default方法的使用方法,比较详细。 什么是default方法? Java 8发布以后,可以给接口添加新方法,但是,接口仍然可以和它的实现类保持兼容。这非常重要,因为你开发的类库可能正在被多个开发...
很多程序员在解决JVM性能问题的时候,花开了很多时间去调优应用程序级别的性能瓶颈,当你读完这本系列文章之后你会发现本人可能更加系统地看待这类的问题。本人说过JVM的自身技术限制了Java企业级应用的伸缩性。首先各位同行先列举一些主导因素。 主流的硬件...
总结了自己在实际工作场景中遇到的与http协议相关的一些内容的理解。Request & Response Request格式 <request-line> 比如:GET /api/index.json HTTP/1.1 <headers> 比如:Accept: */*; User-Agent: Mozilla/4.0;…… <blank line> [&...
作为.NET进阶内容的一部分,垃圾回收器(简称GC)是必须了解的内容。本着“通俗易懂”的原则,本文将解释CLR中垃圾回收器的工作原理。 基础知识 托管堆(Managed Heap) 先来看MSDN的解释:初始化新进程时,运行时会为进程保留一个连续的地址空间区域。这个保留的...
你是否每天使用着网页翻译工具?你是否遇到过这种情况,上网过程中遇到一个很长的单词但是又不能复制,要开两个浏览器,一个打开百度翻译,照着另一个网页输入单词?你安装了各种翻译软件后,又删除,只因忍受不了那每次弹出来的广告?其实我们想要的就是简单...
大家都知道由于性能要求,android要求只能在UI线程中更新UI,要想在其他线程中更新UI,我大致总结了4种方式,欢迎补充纠正: 使用Handler消息传递机制; 使用AsyncTask异步任务; 使用runOnUiThread(action)方法; 使用Handler的post(Runnabel r)方法; 下...
ITJS的这篇文章主要来介绍一下Java中的不可变对象,以及Java中String类的不可变性,那么为什么Java的String类是不可变对象?让各位同行一起来分析一下。 答案一: 最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,...
ITJS的这篇文章非常适合初学Java的程序员,主要是来了解一下Java中的几种for循环用法,分析得十分详细,一起来看看。 J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。ITJS的这篇文章介...
生产过程中出现的问题正逐渐得到中层和最高管理层的重视。不管是身为开发人员还是架构师,下列的事项都应该得到你足够的重视以避免陷入未来的尴尬境地。你也可以把它作为排查问题的便签。 #1、不在属性文件或 XML 文件中外化配置属性。比如,没有把批处理使用...
正题开始。早两天写了《从把三千行代码重构成15行代码谈起》这篇文章,看到评论中有一些同学的回复还是在质疑反射的性能,好像程序用上了反射,就像开上了拖拉机似的。本来我觉得这个话题没有什么好讨论的了,网上已经有太多太多的文章在说这个问题,有疑问的...
对于Web开发者来说,PHP是一款非常强大而又受欢迎的编程语言。世界上很多顶级的网站都是基于PHP开发的。该篇我们来回顾一下20个2014年最优秀的PHP框架。 每一个开发者都知道,拥有一个强大的框架可以让开发工作变得更加快捷、安全和有效。在开发项目之前选择...
0. 应用启动优化概述 在 Android 开发中,应用启动速度是一个非常重要的点,应用启动优化也是一个非常重要的过程.对于应用启动优化,其实核心思想就是在启动过程中少做事情,具体实践的时候无非就是下面几种: 异步加载 延时加载 懒加载 不用一一去解释,做过启动...
Apache是一款非常高效地WEB服务器,目前仍居全球最受欢迎的WEB服务器软件之首。Apache其功能强大之处在于我们可以为它开发许多模块,并作一些相应的配置,从而让我们的Apache服务器有更加个性化的功能。1、单点登录模块 LemonLDAP LemonLdap可以很棒地实现Apa...
这里黑客新闻吗?作者用代码更新了自己的简历,是不是很接地气,特符合程序员的逼格。这是一份可读可执行的C语言源文件,也是作者编码风格的体现。 #include <stdio.h> #include <time.h> typedef struct { union { char * company...