Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 190
  • Last Modified:

How to trace Object-Oriented function calls in PHP without adding code to each function

I developed an code-base (single file) where all my functions are housed. Whenever I need to call one of these functions, I "require" this file.
I rescently discovered that this is a very stupid way of doing it as the file gets parsed and compiled every time I require it, causing a huge execution time bottleneck.

Now I want to split this file into smaller files, only containing the relevant functions for each page call, and only require this small file, instead of the whole "code-base" each time.

Is there an easy way of logging/tracing which functions are called upon file execution so that I can determine which functions to include in these smaller files? I've tried using xdebug, but this logs only PHP native functions, and need extra code added per function to enable me to trace calls to my custom functions. (Correct?)
0
Kobz46
Asked:
Kobz46
  • 10
  • 5
2 Solutions
 
hernst42Commented:
If you have performance issues I suggest you install APC as code cache and the nyou can neglegt the size and number of functions in the file. Splitting everything up is a complicated way and will lead to a lot of issues. Sometimes it's even faster to include one file instead of the 10.
0
 
Kobz46Author Commented:
Looks promising. I'll install and re-run my stress test to see if this helps. Thanks.
0
 
Kobz46Author Commented:
Could you please assist with this error?

I've installed re2c, gawk and the apache2-threaded-dev packages.


APC-installation.gif
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
hernst42Commented:
check wether you have apxs or apxs2 or apache2-dev packe install. should be somewhere in sbin
0
 
Kobz46Author Commented:
OK, reinstalled apache-threaded-dev and APC installed perfectly. Gonna run some test and will report back and assign points as needed.
0
 
Kobz46Author Commented:
Problem. When I restart apache the page loads on the first load, upon reload, the page comes back blank. Is there anything I need to configure? When commenting out the extension in php.ini all runs fine, so the problem must be somewhere within APC.
0
 
hernst42Commented:
Are you running APC with xdebug then try to disable xdebug and test APC again.
0
 
Kobz46Author Commented:
Apache gives me the following in the error.log

child pid xxx exit signal segmentation fault(11)
child pid xxx exit signal segmentation fault(11)
child pid xxx exit signal segmentation fault(11)
child pid xxx exit signal segmentation fault(11)
0
 
Kobz46Author Commented:
xdebug in commented out in php.ini
0
 
hernst42Commented:
hm strange it works here very well since years, but depending on your code APC might have bugs. which causes the opcache to fail. Does this only happen with your pages or with any page (also a phpinfo() page?)
0
 
Kobz46Author Commented:
All pages. Same happens on phpinfo(). Loads once after restarting apache, and then on next reload comes back blank. No source whatsoever. On every load retry, It's logs the segmentation fault in apache error log.

Apache 2.2.8 (Ubuntu)
0
 
Kobz46Author Commented:
strange thing is that it loads every page once, and then fails after reloading that same page.
0
 
hernst42Commented:
the 1st time it parses and conmpiles the php-file into opcode 2nd time the opcode is taken from the cache and there the opcodes semm to be invalid/broken. Any other zend_extension install. Can you post the phpinfo() output without the apc loaded to see wich other modules are installed which might cause problems?
0
 
Kobz46Author Commented:
OK....got it solved. Seems like it clashed with ZendOptimizer. Uncommented and all is running well. No proceeding with stress test! Phew!!
0
 
Kobz46Author Commented:
Just did a bencmark and I can now do 300+ average mySQL queries instead of 34. AMAZING!!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 10
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now