Jump to content

Speeding Up Loading Times


Recommended Posts

  • Replies 53
  • Created
  • Last Reply
Posted

As for APC, because of how it works I'm not sure it works at all on FastCGI. You can indeed use both memcached and APC, utilising memcached for it's key:value storage and APC for it's opcode caching (basically it caches the "compiled" PHP, so it doesn't have to be parsed on each request.





I installed APC tonight (took some doing as there were quite a lot of dependencies that needed updating on my server).

It worked okay with the FastCGI wrapper for PHP in place, but there was no increase in speed at all.

So, I decided to experiment and see what happened when I stopped pushing PHP through FastCGI.

It's working faster. :thumbsup:

Only by 2-3 milliseconds, however it brought down the load time to under a second for cached page loads, and crucially the reduction seemed to be in TTFB, leading to rendering on-screen starting earlier.

I has fast forums now!!! (w00t)

Thanks,
Shaun :D
Posted

Cool, I am using APC too but I don't see any speed difference.

Are you using memcached+ APC? And have you stopped using FastCGI?


Thank you.

Posted

Just found something new, "mod_pagespeed". Anyone using this or having any idea about it?

http://code.google.com/speed/page-speed/docs/module.html

http://www.websiteoptimization.com/speed/tweak/mod_pagespeed/


Thank you.

Posted

Are you using memcached+ APC? And have you stopped using FastCGI?





Yes, I'm now using memcached + APC (version 3.0.19 which is the latest [May 2008] stable release, but I'll probably update to a newer version sometime next week).

I would still suggest trying FastCGI if you don't have APC available as it did help and was almost as fast as APC, however APC seems to offer just that little bit better speed improvement so I'm going to stick with that for a while, and maybe have a look at the settings to see if I can tailor it a little bit better (for example, I increased the cache size from the default 30MB to 256MB).

I did find Googles mod_pagespeed but haven't really looked too hard at it just yet as I wanted to go through "know" and stable offerings first, before trying new stuff.

I'll make some time to have a look at the mod_pagespeed docs though and see if will offer anything more than I already have.

Cheers,
Shaun :D
Posted

I did find Googles mod_pagespeed but haven't really looked too hard at it just yet as I wanted to go through "know" and stable offerings first, before trying new stuff.




Be careful with mod_pagespeed. IIRC, Dan somewhere posted it makes website more slow and increases load.

http://community.invisionpower.com/topic/324493-mod-pagespeed/page__p__2038867__hl__mod_pagespeed__fromsearch__1#entry2038867
Posted

It's important to know that if you run a server which has multiple clients on it (like you provide shared webhosting), then most host providers recommend against DSO for security reasons.
They're rationale is beyond my technical understanding, but I have seen it said many times when researching.

Posted

One test doesn't equal a result. I'd be interested to see the more tests running mod_pagespeed. Especially if run for a couple of days. I can't use it as it's an Apache module and I run Litespeed.

While it will likely raise the server load, I would expect noticeably faster load times, even on a forum.

Posted

One test doesn't equal a result. I'd be interested to see the more tests running mod_pagespeed. Especially if run for a couple of days. I can't use it as it's an Apache module and I run Litespeed.



While it will likely raise the server load, I would expect noticeably faster load times, even on a forum.




We did some quite extensive testing of this, both on a WordPress and IP.Board site. Even after a couple of hours of accessing the same pages, some were taking up to five minutes to load. I realise it's not a clean benchmark, etc, etc, but it does raise some huge red flags for me.
Posted

I was going to suggested adding your speedups as an article in the resources section, but I can't seem to find the resources section anymore.. ??????

Posted

This is just the topic I've been dreaming of, thanks for the hints :D

I'd like to also use the optimise file but get this error...

Warning: array_key_exists() expects parameter 2 to be array, null given in public_html/optimise.php on line 4
Could not retrieve your MySQL access details.

Posted

Bibs, you are running that script from the command line right? You'll need to be shelled into your server and run it with php -f ./optimise.php

Posted

If your doing it from the command line then you should repair / check and optimize all at once which may make more sense.

mysqlcheck -u root -p --auto-repair --check --optimize --all-databases



Have your MySql password to hand as it requires once you enter the above command line :)
Posted

Bibs, you are running that script from the command line right? You'll need to be shelled into your server and run it with php -f ./optimise.php



Then I get...

Deprecated: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0
Could not open input file: ./optimise.php

Perhaps I should stop before I break something :lol:
Posted

Then I get...



Deprecated: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0


Could not open input file: ./optimise.php



Perhaps I should stop before I break something :lol:






The Deprecated warning is fine. You need to drop that PHP file in the root of your IPB install (I think) and then chdir into the folder it's in before running that.
Posted



3. This script can help you find and optimize tables that need it:




I run that as root, it didnt ask should it optimize or not, it just did that for all tables :D

Is that one time deal or should i run that time to time?


Optimizing table: ipb_core.ipb_admin_permission_rows

--- Done!


Optimizing table: ipb_core.ipb_bulk_mail

--- Done!


Optimizing table: ipb_core.ipb_cache_store

--- Done!


Optimizing table: ipb_core.ipb_ccs_block_wizard

--- Done!                                                                                                                                                             


Optimizing table: ipb_core.ipb_ccs_blocks                                                                                                                             

--- Done!                                                                                                                                                             


Optimizing table: ipb_core.ipb_ccs_custom_database_8                                                                                                                  

--- Done!                                                                                                                                                             


Optimizing table: ipb_core.ipb_ccs_database_revisions                                                                                                                 

--- Done!


Optimizing table: ipb_core.ipb_ccs_folders

--- Done!


Optimizing table: ipb_core.ipb_ccs_page_wizard

--- Done!


Optimizing table: ipb_core.ipb_ccs_pages

--- Done!


Optimizing table: ipb_core.ipb_ccs_template_blocks

--- Done!


Optimizing table: ipb_core.ipb_ccs_template_cache

--- Done!


Optimizing table: ipb_core.ipb_chat_log_archive

--- Done!


Optimizing table: ipb_core.ipb_core_hooks

--- Done!


Optimizing table: ipb_core.ipb_core_hooks_files

--- Done!


Optimizing table: ipb_core.ipb_core_item_markers_storage

--- Done!


Optimizing table: ipb_core.ipb_core_soft_delete_log

--- Done!


Optimizing table: ipb_core.ipb_core_sys_conf_settings

--- Done!


Optimizing table: ipb_core.ipb_core_sys_cp_sessions

--- Done!


Optimizing table: ipb_core.ipb_core_sys_lang_words

--- Done!


Optimizing table: ipb_core.ipb_core_sys_login

--- Done!


Optimizing table: ipb_core.ipb_core_sys_settings_titles

--- Done!


Optimizing table: ipb_core.ipb_forums

--- Done!


Optimizing table: ipb_core.ipb_mail_queue

--- Done!


Optimizing table: ipb_core.ipb_member_status_actions

--- Done!


Optimizing table: ipb_core.ipb_member_status_replies

--- Done!


Optimizing table: ipb_core.ipb_member_status_updates

--- Done!


Optimizing table: ipb_core.ipb_rss_export

--- Done!


Optimizing table: ipb_core.ipb_search_sessions

--- Done!


Optimizing table: ipb_core.ipb_sessions

--- Done!


Optimizing table: ipb_core.ipb_skin_cache

--- Done!


Optimizing table: ipb_core.ipb_skin_css

--- Done!


Optimizing table: ipb_core.ipb_skin_templates

--- Done!


Optimizing table: ipb_core.ipb_task_manager

--- Done!


Optimizing table: ipb_core.ipb_upgrade_sessions

--- Done!


Optimizing table: ipb_core.ipb_validating

--- Done!


Posted

[size="4"]<?php flush(); ?>[/size]



Credit: blair



This helps to speed up the visual perception of page loading. Try adding <?php flush(); ?> to your skin after </head>






</head>


<?php flush(); ?>


<body ........ >



blair had a problem using it once with some (non-standard) ad code, but no issues with Adsense.



Does this execute if it is in the template the way you posted? I thought php code within a template had to be wrapped within the < php >< /php > in order for it to execute.
Posted

Does this execute if it is in the template the way you posted? I thought php code within a template had to be wrapped within the < php >< /php > in order for it to execute.





That's a very good question - and one, unfortunately, that I don't know the answer to.

If it helps, when I view source for my pages I see the php flush code as it's shown in my posting. Should this be present / visible in the code?

Is anyone else able to answer this?

Cheers,
Shaun :D
  • 5 weeks later...
Posted

That's a very good question - and one, unfortunately, that I don't know the answer to.



If it helps, when I view source for my pages I see the php flush code as it's shown in my posting. Should this be present / visible in the code?



Is anyone else able to answer this?



Cheers,


Shaun :D




No it shouldn't be visible but if you type what CycleChat suggested it would be. The "flush" code never ran.. and if it did, you would probably get errors. This is because when you flush the page the server has to issue response headers.. and any attempts to modify or add on to those headers after the flush call would produce an error message since they were already sent.

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...