hostspot从jdk1.3就出来了,是sun的新一代jvm技术,主要目的是提高性能。实际应用中需要设置参数:
http://www.hashei.me/2009/05/tuning-the-sun-hotspot-jdk.html
回收器选择 JVM给了三种选择:串行收集器、并行收集器[吞吐量]、并发收集器[响应速度],但是串行收集器只适用于小数据量的情况,所以这里的选择主要针对并行收集器和并发收集器。默认情况下,JDK5.0以前都是使用串行收集器,如果想使用其他收集器需要在启动时加入相应参数。JDK5.0以后,JVM会根据当前系统配置进行判断。
Continue reading java hotspot虚拟机
相关文章:
http://www.infoq.com/news/2011/02/agile-manifesto-10-years-series
http://www.infoq.com/cn/articles/personal-reflection-agile-ten-years-mellor
http://www.infoq.com/cn/articles/agile-teenage-crisis
虽然没有完完全全的按部就班的实施过某种敏捷方法,但是实际开发中确实与其中的思想不谋而合。我关注敏捷是由于CMM/CMMI这个东西以及大量的书籍中的观点似乎完全忽略了人以及编码这些要素。似乎软件的管理就是一堆堆的文档规范,众多的委员会骑在开发者的头上,然我看了很反感。难道文档编好了加上坐在办公椅上审视报告就能制造高质量的能work的软件?你们把实际做事的放哪里去了?这很自然地助长了官僚主义。
敏捷的观点是另一派的,我了解了后觉得符合实际,这些人是从下到上实践来的观点。
这一系列文章也反思了一下敏捷,我觉得:
CMM/CMMI还是敏捷方法有时都代表了某些人的利益,被过大的强调了;
敏捷和注重设计的方法本身应该不是对立的,其目的是让软件做好,只是各有侧重,而侧重并不是说抛弃对方的观点。重要的是结合实际情况来实施,没有可以照抄的成功,实事求是才是真理。
敏捷揭露了CMM/CMMI以及过度设计的反面,但是敏捷需要与其它观点共存!
Continue reading 【评】《敏捷宣言》10周年系列纪念文章
parentNode与parentElement同义,但是parentElement不是w3c规范的。这里主要讨论parentNode,offsetParent的区别:
引用网上的介绍:
offsetParent直接的将是影响元素位置的上级element,而parentElement与位置显示无关时dom中的上级element。
例如:
<BODY>
<div style="border: 1px solid black;position:absolute;">
<form>
<input type="checkbox" id="cc">
</form>
</div>
这个例子中,“cc”元素的offsetParent是div,如果去掉div的position属性,那么cc的offsetParent就会变为body。而parentElement一直都为form。
与此相关的还有offsetLeft和offsetTop两种属性,他们分别表示的是元素与offsetElement相对应的左侧和顶部距离。
另外的例子是table:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<script type="text/javascript">
window.onload = function(){
var el = document.getElementById('t2');
alert(el.offsetParent.id);
};
</script>
<body style="width: 1000px;">
<table id="tb">
<tr id="tr1"><td>t1</td></tr>
<tr id="tr2"><td id="t2">t2</td></tr>
</table>
</body>
</html>
可以看到td的offsetParent直接是table。
Continue reading parentNode,parentElement,offsetParent区别
If I were king, I'd banish JPEGs forever. JPEGs (pronounced "jay-pegs", and sometimes
spelled "JPGs") are the images you see all over the Web. Pictures stored as JPEGs are highly
compressed so they can be sent across the Internet faster. A picture that takes up 1 million bytes
can be squeezed down to 1/10th of that size if you turn it into a JPEG.
That would seem like a good idea. But it's actually a good idea gone bad. JPEGs are like
jigsaw puzzles that can never be put back together again right. Pieces will always be missing.
Every time you change a normal image into a JPEG, you lose part of the picture. You can never
get it back.
Remember that. I'll repeat it in a slightly different way to help out: When you create or save
a JPEG image, you lose part of the picture and you simply can't get it back, ever.
JPEGs are losers. They use what's called "lossy" compression. To squeeze an image's file
size down to something really small, the JPEG process tosses out 80 or 90 percent of the
information and fakes a lot of the rest. JPEGs take advantage of a trick of our eyesight. When we
see part of a small, familiar object, we automatically fill in the rest of it. JPEG processing breaks
an image up into a lot of small pieces and strips out a great deal of detail from each small piece.
A picture of your grandmother holding a shawl might show every detail ordinarily, but a
JPEG version might not show the way her fingers wrap around the fabric. Instead, they might be
depicted as areas of light and dark contrast that suggest an old woman's fingers. Your eyes and
brain do the rest. They turn what is only a suggestion of fingers into what your brain thinks is the
real thing.
This might be fine for some uses. But anyone who cares about digital photography should
consider JPEG as an enemy, not a friend. I'll bet you don't want that picture of grandma turned
into someone who looks sorta like grandma. You want the real thing.
JPEGs are one-way trips to the Badlands. Here's a familiar scenario. You have a normal,
non-compressed image. It's a Windows bitmap, maybe. (They're BMP files.) You open this
bitmap in your image-editing software and save it as a JPEG. The file is a lot smaller. You
celebrate a little. What a trick you just pulled!
Later, you realize you need to tweak the picture a little. Maybe you need to crop it. Maybe
you just want to make the colors more vivid.
So you open the JPEG in your image editor, make your changes and save the file as a JPEG
again.
The image you cropped or tweaked can't be the same as the one you started with. It was
already chopped up a lot by the JPEG processing, and when you saved it again it got chopped and
diced some more.
The PNG image format is the best thing since the wheel. PNG (pronounced "Ping," not "Pea
En Gee") means "Portable Network Graphics." When you save an image as a PNG, nothing gets
sliced or diced. A PNG is almost surely going to be smaller than a standard uncompressed image,
but it won't have any wounds. Cut it up all you want, slice it hither and yon. It will be all there,
even though it's smaller.
This miracle is actually just a trick of counting. We all do the same thing that PNGs do. We
learned this trick in grade school.
Here's how it works. Suppose you have a lot of sheep to count. You could count every
single one of them. Boring, right? Or you could count them by twos. Or maybe, if your eye is
quick, you could count them by threes.
Let's say you've done thismaybe you were trying the old technique of counting sheep to
get to sleep but it didn't workand now it's time to come up with the real number. If you counted
by twos, you just multiply your total by two. If you counted by threes, you multiply your number
by three.
Cool, right? You're storing something like 31 in your brain, but you can quickly turn that
into the real number62 or 93.
It's all shorthand. It's a perfectly sane mathematical trick. PNG uses the same approach. It
squeezes the data in an image file using tricks of math. Does the image have 61 pixels of nothing
but azure blue in one area? PNG stores that information as an instruction to make an azure blue
pixel 61 times. That takes up a lot less space than something like this: azure blue pixel, azure
blue pixel, azure blue pixel, ... you get the point.
The best part of this trick is the way it can be totally reversed without losses. the sky looks
exactly the way it was supposed to in the image with all those azure blue pixels. Storing
information by listing it as "1 pixel times 61" is the same as storing 61 pixels. Except that it
doesn't take up all that wasted space.
PNGs can't quite squeeze images as much as JPEGs can. There's no way to do it the lossless
way and get the same reduction in file size. But PNGs can cut an image down to anywhere from
one-half to one-third of its normal file size without any loss of data. Some images can be reduced
even more.
I took a few hundred uncompressed digital images and changed them from BMP to PNG to
find out how much space I could save. Most of them were 12 megabyte files stored as BMPs.
PNG squeezed these scans down to a little less than half their uncompressed size on average.
Some scans, especially ones that did not have much detail, compressed a lot more. But since I
started storing most of my digital images as PNGs, I've come to expect about a 50 percent to 60
percent savings in file space.
That might not seem like much compared to the way JPEG squeezes images, but it's a huge
bonus when you realize that PNG is harmless. Images are not changed in any way.
Good image viewers and editors know how to deal with PNG. If you don't see PNG listed as
an option in your image editor's "Save As" menu (under the "File" menu), you have old software
and should get a newer version.
If you don't have an image viewer of any kind, buy ACDSee, available for both Windows
PCs and Macintoshes.
1, shawl [ʃɔ:l]
n. 披肩,围巾
2, sorta ['sɔ:tə]
adv. 近似,有几分;可以说是
3, vivid ['vivid]
a. 生动的,栩栩如生的,鲜艳的
4, dice [dais]
vt. 切成方块
n. 骰子
vi. 掷骰子
5, sliced [slaist]
adj. (食物)已切成薄片的
v. 切成薄片;分配(slice的过去式和过去分词)
6, yon [jɔn]
adj. 那边的,彼处的
adv. 在那边,在远处
n. 那边,远处
pron. 彼处之人或物
7, chopped
v. 斩碎(开裂,中断,多变,开路)
8, sane [sein]
a. 神智健全的,理智的
9, azure
n. 天蓝色,碧空
a. 蔚蓝的
10, squeeze [skwi:z]
n. 压榨,挤
v. 紧握,挤
PNG原来是无损压缩位图
GIF也是无损压缩位图,只是由于压缩算法专利问题,逐渐被PNG取代。
http://zh.wikipedia.org/wiki/GIF
http://zh.wikipedia.org/wiki/PNG
Continue reading it-e-70 Why You should Not Use JPEGs for Image Storage
Why is image compression so important? Image files, in an uncompressed form, are very large.
And the Internet, especially for people using a 56k dialup modem, can be pretty slow.[1]This
combination could seriously limit one of the Web's most appreciated aspectsits ability to present
images easily.
JPEG (Joint Photographic Experts Group)compression is currently the best way to compress
PHOTOGRAPHIC IMAGES for the web. Other forms of image compression, including GIF and
PNG, are best used for other purposes on the web.
GIF (Graphics Interchange Format) is best used for graphics that have a limited color pallet
and large areas of flat tone, like cartoons or banners. Although it has several remarkable features,
such as transparency and the ability to present animated images, it is not well suited for the
presentation of continuous tone images, such as photographs, due to its limit of 256 colors.
PNG (Portable Network Graphics) is a relatively new format with a lot of potential but, until
all browsers can see images compressed in PNG form, it is not a good idea to use it.
JPEG, or JPG, is an evolving format that is universal in its use as a means of compressing
continuous tone photographs for speedy transmission over the Internet. Photographs compressed
using the JPEG format look good because JPEG supports millions of colors, so you can see the
gradation of tones.
A Bitmap is a simple series of pixels all stacked up. But the same image saved in GIF or
JPEG format uses less bytes to make up the file. How? Compression.
"Compression" is a computer term that represents a variety of mathematical formats used to
compress an image's byte size. Let's say you have an image where the upper right-hand corner
has four pixels all the same color. Why not find a way to make those four pixels into one?[2]That
would cut down the number of bytes by three-fourths, at least in the one corner. That's a
compression factor.
Bitmaps can be compressed to a point. The process is called "run-length encoding." Runs of
pixels that are all the same color are all combined into one pixel. [3]The longer the run of pixels,
the more compression. Bitmaps with little detail or color variance will really compress. Those
with a great deal of detail don't offer much in the way of compression. Bitmaps that use the
run-length encoding can carry either the common ".bmp" extension or ".rle". Another difference
between the two files is that the common Bitmap can accept 16 million different colors per pixel.
Saving the same image in run-length encoding knocks the bits-per-pixel down to 8. That locks
the level of color in at no more than 256.
So, why not create a single pixel when all of the colors are close? You could even lower the
number of colors available so that you would have a better chance of the pixels being close in
color. Good idea. The people at CompuServe felt the same way.
GIF, which stands for "Graphic Interchange Format," was first standardized in 1987 by
CompuServe, although the patent for the algorithm (mathematical formula) used to create GIF
compression actually belongs to Unisys. The first format of GIF used on the Web was called
GIF87a, representing its year and version. It saved images at 8 bits-per-pixel, capping the color
level at 256. That 8-bit level allowed the image to work across multiple server styles, including
CompuServe, TCP/IP.
CompuServe updated the GIF format in 1989 to include animation, transparency, and interlacing.
They called the new format, you guessed it: GIF89a.
There's no discernable difference between a basic (known as non-interlaced) GIF in 87 and
89 formats.
1, continuous tone
连续色调
2, gradation [ɡrə'deiʃən]
n. (色彩、颜色、次序、音调等的)渐变;分等级;(各种状态、性质等的)分阶段渐变;元音交替
3, discernable [di'sə:nəbl, -'zə:-]
adj. 可辨别的;可认识的
4, interlaced [,intə'leist]
a. 交织的,交错的
5, interlacing [intə(:)'leisiŋ]
n. 交错,隔行;隔行扫描
v. 交错,交织(interlace现在分词)
Continue reading it-e-69 Image Compression