wiki:Introduction

Version 2 (modified by moo, 8 years ago) (diff)

--

Introduction to XCache

Do you (the author of XCache) know apc, eaccelerator, phpa, truck-mmcache ?

Yeah, i know them very well.

I've noticed phpa long ago, the time while truck-mmcache is still under maintained actively. But saidly, phpa was almost dead after then, never catch up with newer version of php. So i used truck-mmcache for a period, but... it hang or crash repeatly after sometime online, under high load. I noticed apc later, but i read both apc/truck-mmcache] source for a long time (I can't write XCache if haven't read them), discovering that apc code is simpler and more beautiful than mmcache's. So i turned to apc finally. mmcache forked eaccelerator, and they setup www.eaccelerator.net, running trac.

But why do you write XCache after that? Why not contribute to ea/apc?

I DID filing bug report, submiting patches to both http://pecl.php.net/bugs/search.php?cmd=display&package_name[=APC&status=All apc bug report system] and truck-mmcache on sf.net and interactive with communicate with zoeloelip, one of the main developer of eaccelerator. He's the first one read my XCache source, long before XCache is published online. I'm not sure, but i guess the idea he rewrite ea_dasm.c is base on my Disassembler idea in XCache :)

There's many reason make me to write XCache instead of keeping patching ea/apc.

  • Something too big to be made into them (ea/apc).
  • I have many new ideas on opcode cacher, but i just can't break their cacher to prove my ideas.
  • To prove my programming skill? Making project oneself isn't that simple. With only programming skill is far insufficient, you need to become project admin, designing how the project will be, foresee the cost and benefits ... blah blah

And a final episode: I had written XCache for a long time before I have apc online for a long time. it's quite stable for php4, using flock(), so why I switch? I didn't. The only reason i switch is that apc stop working when then time I upgrade my server to dual cpu(4 threaded cpu at total), it flock()s deadly. It is said fixed after i switch to XCache, good news anyway.

ea/apc is still good opcode cacher, as long as it's maintained actively, and if it's stable for you.

What's special in XCache?

see FeatureList.

btw. I myself, focus XCache on study for stable, for code generating.