php - What performance improvements can I make to Symfony + Doctrine? -


i've built reasonably complex database application university handling 200 tables. tables can (e.g. publications) hold 30 or more fields , store 10 one-to-one fk relations , 2 or 3 many-to-many fk relations (using crossreference-ref tables). use integer ids throughout , normalisation has been key every step of way. ajax minimal , pages standard crud forms/processes.

i used symfony 1.4, , doctrine orm 1.2, mysql, php.

while benefits development time , ease of maintenance have been enormous (in using mvc , orm), we've been having problems speed. is, when have more few users logged in , active @ 1 time application slows considerbly (up 20 seconds save or edit record).

we're engaged in discussions our sysadmin should have more enough power. 6 or more users engaged in activity, end queuing 4 cpus in virtual server environment while memory usage low (no bleeds).

of course, we're considering multi-threading our mysql application (if help), refining our code (though of generated mvc) , refining our cache usage (this better, though majority of screen used user-login specific , dynamic); we've installed apc, memory, de-fragmented our database, i've tried unsetting recordsets (though understand automatic within orm), instigating manual garbage recycling...

but question i'm asking whether mysql, php, , symfony mvc poor choice developing application of size in first place? if so, people use/recommend web-based database interface application of kind of size/complexity?

i don't have experience symfony or doctrine. however, there larger sites yours built on these projects. dailymotion instance uses both, , serves heck of lot more few simultaneous users.

likewise, php , mysql used on sites large wikipedia, scalability should not problem. (btw, mysql should multithreaded default—one thread per connection.)

of course, reasonable performance relative. if you're trying run site serving 200 concurrent requests off beige box sitting in closet, may need optimize code lot more fortune 500 company own data centers.

the obvious thing profile application , see bottleneck is. profiling mysql queries pretty simple, , there assorted php profiling tools xdebug. there can figure out whether should switch frameworks, orms (or ditch orm altogether), databases, or refactor code, or invest in more processing power.


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -