I noticed phpa (PHP Accelerator) long ago, and looked at truck-mmcache around the time it was still being actively maintained. Sadly phpa's project died and never updated its code to support newly released versions of PHP. So I used truck-mmcache for a period of time, but... it hanged or crashed continously after being under high load. I noticed APC later, but I've been reading both APC/truck-mmcache source for a long time (I couldn't have writen XCache if I hadn't read them), discovering that APC code is simpler and more beautiful than mmcache's. Features are good, but I believe that stability is more important. So I finally turned to run APC online -- simpler often means more stable. mmcache forked eaccelerator later and they setup ​www.eaccelerator.net, running ​trac.

There are many reasons for me to write XCache instead of using APC or EA:

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 skills? 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

To conclude, I've finished writting XCache for quite a long time, before then I had used APC. Although it was quite stable for a php4 with flock() configuration it had become unstable once I upgraded my server to a dual cpu (4 threaded cpu) because it flock()ed badly so XCache was used instead and seems to have solved the problem.

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