Feature #35912

Improve performance on Windows

Added by Bastian Waidelich over 3 years ago. Updated about 3 years ago.

Status:Resolved Start date:2012-04-12
Priority:Must have Due date:
Assigned To:Bastian Waidelich % Done:

100%

Category:Cache
Target version:TYPO3 Flow Base Distribution - 1.1
PHP Version: Complexity:nightmare
Has patch:No

Description

Performance of FLOW3 on Windows is still quite bad.
Something can't go right there (e.g. flow3:objectmanagement:proxyclasses takes > 5 seconds even with frozen packages and no changes!)

Test code (in TYPO3.FLOW3/Classes/Core/Booting/Sequence.php, line 88ff):

1$start = microtime(TRUE);
2$step($bootstrap);
3$end = microtime(TRUE);
4echo $step->getIdentifier() . ': ' . ($end - $start) . PHP_EOL;


Related issues

duplicated by TYPO3 Flow Base Distribution - Task #11964: Profile under windows Closed

Associated revisions

Revision fb277f30
Added by Robert Lemke over 3 years ago

[FEATURE] Track all configuration changes

This change set greatly improves the file monitoring of FLOW3's
system relevant files, such as class files, settings, object
configuration, policies and translations.

In Development context, changes to any of the above will be
tracked and the related caches are flushed. For performance
reasons, the new mechanism does not rely on the tagging
feature of the cache framework, but uses the new Simple
File Backend and rather flushes a few caches too many than
missing an important change.

Change-Id: I52b9f659740aef5d929a102ef5902b1fd1d2a588
Resolves: #5849
Resolves: #33811
Related: #35912
Releases: 1.1

History

#1 Updated by Bastian Waidelich over 3 years ago

  • initializeClassLoader: 0.0006 s
  • initializeSignalSlot: 0.0005 s
  • initializePa..gement: 0.0265 s
  • resolveRequestHandler: 0.0001 s
  • handleRequest: 9.0000 s

Unfrozen packages:

With flushed cache:

CLI:

typo3.flow3:configuration: 0.28000903129578
typo3.flow3:systemlogger: 0.0081501007080078
typo3.flow3:errorhandling: 0.0033819675445557
typo3.flow3:cachemanagement: 0.015058994293213
typo3.flow3:configuration: 0.27552604675293
typo3.flow3:systemlogger: 0.008310079574585
typo3.flow3:errorhandling: 0.0032238960266113
typo3.flow3:cachemanagement: 0.014833927154541
typo3.flow3:objectmanagement:compiletime:create: 0.0036430358886719
typo3.flow3:reflectionservice: 0.032308101654053
typo3.flow3:objectmanagement:compiletime:finalize: 13.951103925705
typo3.flow3:classfilemonitor: 6.9370899200439
typo3.flow3:configuration: 0.27573204040527
typo3.flow3:systemlogger: 0.009706974029541
typo3.flow3:errorhandling: 0.0032820701599121
typo3.flow3:cachemanagement: 0.014349937438965
typo3.flow3:configuration: 0.27553606033325
typo3.flow3:systemlogger: 0.0078361034393311
typo3.flow3:errorhandling: 0.0031089782714844
typo3.flow3:cachemanagement: 0.014292001724243
typo3.flow3:objectmanagement:compiletime:create: 0.0035021305084229
typo3.flow3:reflectionservice: 0.10954284667969
typo3.flow3:objectmanagement:compiletime:finalize: 3.8367900848389
typo3.flow3:classfilemonitor: 1.0235049724579
typo3.flow3:objectmanagement:proxyclasses: 5.497407913208
typo3.flow3:classloader:cache: 0.0028209686279297
typo3.flow3:reflectionservice: 0.10109400749207
typo3.flow3:objectmanagement:runtime: 0.025163888931274
typo3.flow3:classfilemonitor: 2.7553489208221
typo3.flow3:persistence: 0.10800004005432
typo3.flow3:session: 2.0980834960938E-5
typo3.flow3:resources: 0.085951089859009
typo3.flow3:i18n: 2.2696490287781
typo3.flow3:objectmanagement:proxyclasses: 41.75418305397
typo3.flow3:classloader:cache: 0.001399040222168
typo3.flow3:reflectionservice: 0.084878921508789
typo3.flow3:objectmanagement:runtime: 0.007681131362915
typo3.flow3:classfilemonitor: 2.4305889606476
typo3.flow3:persistence: 0.054832935333252
typo3.flow3:session: 1.9073486328125E-5
typo3.flow3:resources: 0.033905029296875
typo3.flow3:i18n: 0.011814832687378

WEB:

typo3.flow3:configuration: 0.26645517349243
typo3.flow3:systemlogger: 0.0041310787200928
typo3.flow3:errorhandling: 0.0015931129455566
typo3.flow3:cachemanagement: 0.010852098464966
typo3.flow3:configuration: 0.27598595619202
typo3.flow3:systemlogger: 0.0082471370697021
typo3.flow3:errorhandling: 0.0031919479370117
typo3.flow3:cachemanagement: 0.014372825622559
typo3.flow3:objectmanagement:compiletime:create: 0.0034229755401611
typo3.flow3:reflectionservice: 0.10336184501648
typo3.flow3:objectmanagement:compiletime:finalize: 3.591089963913
typo3.flow3:classfilemonitor: 0.98727989196777
typo3.flow3:objectmanagement:proxyclasses: 5.2025990486145
typo3.flow3:classloader:cache: 0.0021789073944092
typo3.flow3:reflectionservice: 0.088250875473022
typo3.flow3:objectmanagement:runtime: 0.014894008636475
typo3.flow3:classfilemonitor: 1.2787590026855
typo3.flow3:persistence: 0.053558111190796
typo3.flow3:session: 0.022387981414795
typo3.flow3:resources: 0.053711175918579
typo3.flow3:i18n: 0.027100086212158

After flushing cache:

CLI:

typo3.flow3:configuration: 0.27429103851318
typo3.flow3:systemlogger: 0.0078740119934082
typo3.flow3:errorhandling: 0.0032820701599121
typo3.flow3:cachemanagement: 0.014474153518677
typo3.flow3:configuration: 0.27696299552917
typo3.flow3:systemlogger: 0.0075881481170654
typo3.flow3:errorhandling: 0.00313401222229
typo3.flow3:cachemanagement: 0.014472961425781
typo3.flow3:objectmanagement:compiletime:create: 0.0035130977630615
typo3.flow3:reflectionservice: 0.11703205108643
typo3.flow3:objectmanagement:compiletime:finalize: 3.7783071994781
typo3.flow3:classfilemonitor: 1.035218000412
typo3.flow3:objectmanagement:proxyclasses: 5.4628348350525
typo3.flow3:classloader:cache: 0.0030350685119629
typo3.flow3:reflectionservice: 0.10151219367981
typo3.flow3:objectmanagement:runtime: 0.015977144241333
typo3.flow3:classfilemonitor: 2.7635118961334
typo3.flow3:persistence: 0.072417974472046
typo3.flow3:session: 2.0027160644531E-5
typo3.flow3:resources: 0.05144190788269
typo3.flow3:i18n: 0.02424693107605

WEB:

typo3.flow3:configuration: 0.27178001403809
typo3.flow3:systemlogger: 0.0058019161224365
typo3.flow3:errorhandling: 0.0021679401397705
typo3.flow3:cachemanagement: 0.013669967651367
typo3.flow3:configuration: 0.27154803276062
typo3.flow3:systemlogger: 0.0076169967651367
typo3.flow3:errorhandling: 0.0030360221862793
typo3.flow3:cachemanagement: 0.013702154159546
typo3.flow3:objectmanagement:compiletime:create: 0.0035181045532227
typo3.flow3:reflectionservice: 0.10751605033875
typo3.flow3:objectmanagement:compiletime:finalize: 3.5912771224976
typo3.flow3:classfilemonitor: 0.99462199211121
typo3.flow3:objectmanagement:proxyclasses: 5.2032110691071
typo3.flow3:classloader:cache: 0.0022890567779541
typo3.flow3:reflectionservice: 0.087728023529053
typo3.flow3:objectmanagement:runtime: 0.013436079025269
typo3.flow3:classfilemonitor: 2.5983421802521
typo3.flow3:persistence: 0.044166088104248
typo3.flow3:session: 0.017938137054443
typo3.flow3:resources: 0.048172950744629
typo3.flow3:i18n: 0.022809028625488

Frozen packages:

With flushed cache:

CLI:

typo3.flow3:configuration: 0.87447786331177
typo3.flow3:systemlogger: 0.025451898574829
typo3.flow3:errorhandling: 0.010462045669556
typo3.flow3:cachemanagement: 0.045729875564575
typo3.flow3:configuration: 0.85884499549866
typo3.flow3:systemlogger: 0.023602962493896
typo3.flow3:errorhandling: 0.0092759132385254
typo3.flow3:cachemanagement: 0.042110919952393
typo3.flow3:objectmanagement:compiletime:create: 0.012070894241333
typo3.flow3:reflectionservice: 0.34559988975525
typo3.flow3:objectmanagement:compiletime:finalize: 8.3863041400909
typo3.flow3:classfilemonitor: 0.0046439170837402
typo3.flow3:configuration: 0.85473489761353
typo3.flow3:systemlogger: 0.028511047363281
typo3.flow3:errorhandling: 0.0096709728240967
typo3.flow3:cachemanagement: 0.043780088424683
typo3.flow3:configuration: 0.83888292312622
typo3.flow3:systemlogger: 0.023492813110352
typo3.flow3:errorhandling: 0.0094640254974365
typo3.flow3:cachemanagement: 0.043058156967163
typo3.flow3:objectmanagement:compiletime:create: 0.010662078857422
typo3.flow3:reflectionservice: 0.31837201118469
typo3.flow3:objectmanagement:compiletime:finalize: 8.0112340450287
typo3.flow3:classfilemonitor: 0.0036420822143555
typo3.flow3:objectmanagement:proxyclasses: 9.920511007309
typo3.flow3:classloader:cache: 0.0093400478363037
typo3.flow3:reflectionservice: 0.28168106079102
typo3.flow3:objectmanagement:runtime: 0.031605005264282
typo3.flow3:classfilemonitor: 0.014365911483765

Fatal error: Call to a member function getEventManager() on a non-object in TYPO3.FLOW3\Classes\Persistence\Doctrine\PersistenceManager.php on line 69
... WTF?

WEB:

typo3.flow3:configuration: 0.79074287414551
typo3.flow3:systemlogger: 0.010040998458862
typo3.flow3:errorhandling: 0.0043220520019531
typo3.flow3:cachemanagement: 0.041990041732788
typo3.flow3:configuration: 0.86032795906067
typo3.flow3:systemlogger: 0.023704051971436
typo3.flow3:errorhandling: 0.0095930099487305
typo3.flow3:cachemanagement: 0.042849063873291
typo3.flow3:objectmanagement:compiletime:create: 0.010447978973389
typo3.flow3:reflectionservice: 0.34821319580078
typo3.flow3:objectmanagement:compiletime:finalize: 7.9961500167847
typo3.flow3:classfilemonitor: 0.0045878887176514
typo3.flow3:configuration: 0.828125
typo3.flow3:systemlogger: 0.027530908584595
typo3.flow3:errorhandling: 0.009788990020752
typo3.flow3:cachemanagement: 0.043015956878662
typo3.flow3:configuration: 0.82987499237061
typo3.flow3:systemlogger: 0.023891925811768
typo3.flow3:errorhandling: 0.0094349384307861
typo3.flow3:cachemanagement: 0.047674179077148
typo3.flow3:objectmanagement:compiletime:create: 0.010698080062866
typo3.flow3:reflectionservice: 0.31634402275085
typo3.flow3:objectmanagement:compiletime:finalize: 7.9863939285278
typo3.flow3:classfilemonitor: 0.0035929679870605
typo3.flow3:objectmanagement:proxyclasses: 9.8292360305786
typo3.flow3:classloader:cache: 0.0085949897766113
typo3.flow3:reflectionservice: 0.27890706062317
typo3.flow3:objectmanagement:runtime: 0.032037973403931
typo3.flow3:classfilemonitor: 0.01673412322998
Fatal error: Call to a member function getEventManager() on a non-object in TYPO3.FLOW3\Classes\Persistence\Doctrine\PersistenceManager.php on line 69
... WTF?

After flushing cache:

CLI:

typo3.flow3:configuration: 0.87301683425903
typo3.flow3:systemlogger: 0.027798175811768
typo3.flow3:errorhandling: 0.0095109939575195
typo3.flow3:cachemanagement: 0.049597978591919
typo3.flow3:configuration: 0.89022493362427
typo3.flow3:systemlogger: 0.024230003356934
typo3.flow3:errorhandling: 0.0096278190612793
typo3.flow3:cachemanagement: 0.045016050338745
typo3.flow3:objectmanagement:compiletime:create: 0.010761022567749
typo3.flow3:reflectionservice: 0.32214999198914
typo3.flow3:objectmanagement:compiletime:finalize: 8.4722709655762
typo3.flow3:classfilemonitor: 4.3205711841583
typo3.flow3:objectmanagement:proxyclasses: 14.739268064499
typo3.flow3:classloader:cache: 0.0072231292724609
typo3.flow3:reflectionservice: 0.28924298286438
typo3.flow3:objectmanagement:runtime: 0.046913862228394
typo3.flow3:classfilemonitor: 8.2421808242798
typo3.flow3:persistence: 0.20943808555603
typo3.flow3:session: 5.1021575927734E-5
typo3.flow3:resources: 0.15151214599609
typo3.flow3:i18n: 0.073415994644165

WEB:

typo3.flow3:configuration: 0.93979287147522
typo3.flow3:systemlogger: 0.011085987091064
typo3.flow3:errorhandling: 0.0039348602294922
typo3.flow3:cachemanagement: 0.03145694732666
typo3.flow3:configuration: 0.88753294944763
typo3.flow3:systemlogger: 0.023303985595703
typo3.flow3:errorhandling: 0.0097010135650635
typo3.flow3:cachemanagement: 0.042484045028687
typo3.flow3:objectmanagement:compiletime:create: 0.010971069335938
typo3.flow3:reflectionservice: 0.31865286827087
typo3.flow3:objectmanagement:compiletime:finalize: 8.1452510356903
typo3.flow3:classfilemonitor: 4.2189481258392
typo3.flow3:objectmanagement:proxyclasses: 14.255503177643
typo3.flow3:classloader:cache: 0.0024669170379639
typo3.flow3:reflectionservice: 0.23856401443481
typo3.flow3:objectmanagement:runtime: 0.023723125457764
typo3.flow3:classfilemonitor: 3.0890989303589
typo3.flow3:persistence: 0.085095882415771
typo3.flow3:session: 0.028102159500122
typo3.flow3:resources: 0.072228908538818
typo3.flow3:i18n: 0.024872779846191

Windows 7, 64bit, 8GB Ram, Dual-CPU @ 2.40 GHz

#2 Updated by Thomas Allmer over 3 years ago

here are some more data from my laptop:
Windows 7, 64bit, 4GB Ram, Intel Core i5 M520 @2.40 GHz (2 Cores)

flow3.org Site with default frozen packages
all done with CLI Development Context (just ./flow3)

SETUP ONE: WAMP with APC on a NTSC Partition

Run ONE (has cleared Temporary Files)

typo3.flow3:configuration:0.31413078308105
typo3.flow3:systemlogger:0.017487049102783
typo3.flow3:errorhandling:0.007310152053833
typo3.flow3:cachemanagement:0.025290012359619
typo3.flow3:configuration:0.23531699180603
typo3.flow3:systemlogger:0.018084049224854
typo3.flow3:errorhandling:0.0074889659881592
typo3.flow3:cachemanagement:0.028381109237671
typo3.flow3:cachemanagement:forceflush:3.4093856811523E-5
typo3.flow3:objectmanagement:compiletime:create:0.0075850486755371
typo3.flow3:reflectionservice:0.083595991134644
typo3.flow3:objectmanagement:compiletime:finalize: 22.969246864319
typo3.flow3:classfilemonitor: 2.2320339679718
typo3.flow3:configuration:0.26226091384888
typo3.flow3:systemlogger:0.019915819168091
typo3.flow3:errorhandling:0.008350133895874
typo3.flow3:cachemanagement:0.026226043701172
typo3.flow3:configuration:0.24542903900146
typo3.flow3:systemlogger:0.017745971679688
typo3.flow3:errorhandling:0.0076868534088135
typo3.flow3:cachemanagement:0.025263071060181
typo3.flow3:cachemanagement:forceflush:3.1948089599609E-5
typo3.flow3:objectmanagement:compiletime:create:0.0072238445281982
typo3.flow3:reflectionservice:0.2607250213623
typo3.flow3:objectmanagement:compiletime:finalize: 5.3540909290314
typo3.flow3:classfilemonitor:0.19288611412048
typo3.flow3:objectmanagement:proxyclasses: 6.4099040031433
typo3.flow3:classloader:cache:0.0043611526489258
typo3.flow3:reflectionservice:0.1514139175415
typo3.flow3:objectmanagement:runtime:0.024550914764404
typo3.flow3:classfilemonitor:0.63861417770386
typo3.flow3:persistence:0.18685603141785
typo3.flow3:session:3.6001205444336E-5
typo3.flow3:resources:0.14097499847412
typo3.flow3:i18n: 18.985946893692
typo3.flow3:objectmanagement:proxyclasses: 63.889156103134
typo3.flow3:classloader:cache:0.0033078193664551
typo3.flow3:reflectionservice:0.19417309761047
typo3.flow3:objectmanagement:runtime:0.021937847137451
typo3.flow3:classfilemonitor:0.66572213172913
typo3.flow3:persistence:0.11249709129333
typo3.flow3:session:3.0994415283203E-5
typo3.flow3:resources:0.065850019454956
typo3.flow3:i18n:0.030537843704224

Run TWO:

typo3.flow3:configuration:0.23952293395996
typo3.flow3:systemlogger:0.017570018768311
typo3.flow3:errorhandling:0.0074539184570312
typo3.flow3:cachemanagement:0.025405168533325
typo3.flow3:configuration:0.22714114189148
typo3.flow3:systemlogger:0.016543865203857
typo3.flow3:errorhandling:0.0067901611328125
typo3.flow3:cachemanagement:0.023562908172607
typo3.flow3:cachemanagement:forceflush:2.9087066650391E-5
typo3.flow3:objectmanagement:compiletime:create:0.0069339275360107
typo3.flow3:reflectionservice:0.22704696655273
typo3.flow3:objectmanagement:compiletime:finalize: 5.8308291435242
typo3.flow3:classfilemonitor:0.21426701545715
typo3.flow3:objectmanagement:proxyclasses: 6.8538370132446
typo3.flow3:classloader:cache:0.0046789646148682
typo3.flow3:reflectionservice:0.15822505950928
typo3.flow3:objectmanagement:runtime:0.025456190109253
typo3.flow3:classfilemonitor:0.65951991081238
typo3.flow3:persistence:0.16434597969055
typo3.flow3:session:3.6001205444336E-5
typo3.flow3:resources:0.13998293876648
typo3.flow3:i18n:0.081700086593628

Run THREE:

typo3.flow3:configuration:0.25425291061401
typo3.flow3:systemlogger:0.01751184463501
typo3.flow3:errorhandling:0.0075409412384033
typo3.flow3:cachemanagement:0.025485992431641
typo3.flow3:configuration:0.23578786849976
typo3.flow3:systemlogger:0.017436981201172
typo3.flow3:errorhandling:0.0075550079345703
typo3.flow3:cachemanagement:0.025358915328979
typo3.flow3:cachemanagement:forceflush:2.9802322387695E-5
typo3.flow3:objectmanagement:compiletime:create:0.0071859359741211
typo3.flow3:reflectionservice:0.2507951259613
typo3.flow3:objectmanagement:compiletime:finalize: 6.1625151634216
typo3.flow3:classfilemonitor:0.27468419075012
typo3.flow3:objectmanagement:proxyclasses: 7.3136079311371
typo3.flow3:classloader:cache:0.0064220428466797
typo3.flow3:reflectionservice:0.21808886528015
typo3.flow3:objectmanagement:runtime:0.034700870513916
typo3.flow3:classfilemonitor:0.97622179985046
typo3.flow3:persistence:0.16377902030945
typo3.flow3:session:3.2901763916016E-5
typo3.flow3:resources:0.12626099586487
typo3.flow3:i18n:0.073508977890015

SETUP TWO: WAMP with APC on a FAT32 Partition on a RAMDisk1

Same WAMP as before but now the full Webroot of the Vhost with the Flow3Org Folder is on a RAMDisk with FAT32. This should be MUCH fast when accessing files, as everything is in RAM no real disk.
This needed some addjustments as FAT32 does not support any type of symlink. So all the files get actually copied (but thats shouldn be too much trouble on a RAMdisk). I replaced the symlink commands with copy and \TYPO3\FLOW3\Utility\Files::copyDirectoryRecursively

Anyway it didn't help at all :/ I mean you can just ignore "typo3.flow3:resources" but it was even slower than the setup before.
So the disk or NTFS speed wasn't the bottleneck? Or does the Software for the RamDisk needs to much Processing Power?

[1]: http://memory.dataram.com/products-and-services/software/ramdisk

Run ONE (has cleared Temporary Files)

typo3.flow3:configuration:0.36185002326965
typo3.flow3:systemlogger:0.029039144515991
typo3.flow3:errorhandling:0.01284384727478
typo3.flow3:cachemanagement:0.031984090805054
typo3.flow3:configuration:0.35802292823792
typo3.flow3:systemlogger:0.027029037475586
typo3.flow3:errorhandling:0.012096881866455
typo3.flow3:cachemanagement:0.029048919677734
typo3.flow3:cachemanagement:forceflush:2.9087066650391E-5
typo3.flow3:objectmanagement:compiletime:create:0.011135101318359
typo3.flow3:reflectionservice:0.096519947052002
typo3.flow3:objectmanagement:compiletime:finalize: 24.515897035599
typo3.flow3:classfilemonitor: 5.4715940952301
typo3.flow3:configuration:0.1692750453949
typo3.flow3:systemlogger:0.014623880386353
typo3.flow3:errorhandling:0.0064518451690674
typo3.flow3:cachemanagement:0.015578985214233
typo3.flow3:configuration:0.17132306098938
typo3.flow3:systemlogger:0.014369964599609
typo3.flow3:errorhandling:0.0065200328826904
typo3.flow3:cachemanagement:0.016362905502319
typo3.flow3:cachemanagement:forceflush:1.9073486328125E-5
typo3.flow3:objectmanagement:compiletime:create:0.0055561065673828
typo3.flow3:reflectionservice:0.15971207618713
typo3.flow3:objectmanagement:compiletime:finalize: 4.5549728870392
typo3.flow3:classfilemonitor:0.32699084281921
typo3.flow3:objectmanagement:proxyclasses: 5.6001369953156
typo3.flow3:classloader:cache:0.0048530101776123
typo3.flow3:reflectionservice:0.15240001678467
typo3.flow3:objectmanagement:runtime:0.024173974990845
typo3.flow3:classfilemonitor:0.78241086006165
typo3.flow3:persistence:0.12768197059631
typo3.flow3:session:2.0027160644531E-5
typo3.flow3:resources:23.225322008133
typo3.flow3:i18n: 14.036583900452
typo3.flow3:objectmanagement:proxyclasses: 87.487552165985
typo3.flow3:classloader:cache:0.002636194229126
typo3.flow3:reflectionservice:0.11351084709167
typo3.flow3:objectmanagement:runtime:0.012242078781128
typo3.flow3:classfilemonitor:0.62616491317749
typo3.flow3:persistence:0.081347942352295
typo3.flow3:session:1.9073486328125E-5
typo3.flow3:resources:24.954337120056
typo3.flow3:i18n:0.098872900009155

Run TWO:

typo3.flow3:configuration:0.36506605148315
typo3.flow3:systemlogger:0.028500080108643
typo3.flow3:errorhandling:0.012869119644165
typo3.flow3:cachemanagement:0.031785011291504
typo3.flow3:configuration:0.33643007278442
typo3.flow3:systemlogger:0.027488946914673
typo3.flow3:errorhandling:0.012026071548462
typo3.flow3:cachemanagement:0.030471086502075
typo3.flow3:cachemanagement:forceflush:3.0994415283203E-5
typo3.flow3:objectmanagement:compiletime:create:0.010627031326294
typo3.flow3:reflectionservice:0.29692482948303
typo3.flow3:objectmanagement:compiletime:finalize: 6.1257178783417
typo3.flow3:classfilemonitor:0.32388806343079
typo3.flow3:objectmanagement:proxyclasses: 7.6284339427948
typo3.flow3:classloader:cache:0.0046229362487793
typo3.flow3:reflectionservice:0.14821219444275
typo3.flow3:objectmanagement:runtime:0.025232076644897
typo3.flow3:classfilemonitor:0.7908399105072
typo3.flow3:persistence:0.12251901626587
typo3.flow3:session:2.0027160644531E-5
typo3.flow3:resources:23.124845981598
typo3.flow3:i18n:0.046424865722656

Run THREE:

typo3.flow3:configuration:0.40626811981201
typo3.flow3:systemlogger:0.031677961349487
typo3.flow3:errorhandling:0.013302087783813
typo3.flow3:cachemanagement:0.032528877258301
typo3.flow3:configuration:0.35124182701111
typo3.flow3:systemlogger:0.027683019638062
typo3.flow3:errorhandling:0.012206077575684
typo3.flow3:cachemanagement:0.0291428565979
typo3.flow3:cachemanagement:forceflush:2.8133392333984E-5
typo3.flow3:objectmanagement:compiletime:create:0.010607957839966
typo3.flow3:reflectionservice:0.31193590164185
typo3.flow3:objectmanagement:compiletime:finalize: 8.5187201499939
typo3.flow3:classfilemonitor:0.4394519329071
typo3.flow3:objectmanagement:proxyclasses: 10.211659193039
typo3.flow3:classloader:cache:0.006281852722168
typo3.flow3:reflectionservice:0.19323682785034
typo3.flow3:objectmanagement:runtime:0.029526948928833
typo3.flow3:classfilemonitor:0.96623992919922
typo3.flow3:persistence:0.14798593521118
typo3.flow3:session:2.1934509277344E-5
typo3.flow3:resources:31.791902065277
typo3.flow3:i18n:0.04790210723877

SETUP THREE: VirtualBox with Debian (no APC):

It's the the same Windows 7 Laptop with a bridged network and I'm connected to it via ssh.

Run ONE (has cleared Temporary Files)

typo3.flow3:configuration:0.12798690795898
typo3.flow3:systemlogger:0.002025842666626
typo3.flow3:errorhandling:0.00098800659179688
typo3.flow3:cachemanagement:0.007253885269165
typo3.flow3:configuration:0.12167382240295
typo3.flow3:systemlogger:0.0020818710327148
typo3.flow3:errorhandling:0.0010020732879639
typo3.flow3:cachemanagement:0.006727933883667
typo3.flow3:cachemanagement:forceflush:1.5974044799805E-5
typo3.flow3:objectmanagement:compiletime:create:0.0017611980438232
typo3.flow3:reflectionservice:0.010868787765503
typo3.flow3:objectmanagement:compiletime:finalize: 11.022831201553
typo3.flow3:classfilemonitor:0.28118586540222
typo3.flow3:configuration:0.12374901771545
typo3.flow3:systemlogger:0.0019950866699219
typo3.flow3:errorhandling:0.0014629364013672
typo3.flow3:cachemanagement:0.0065429210662842
typo3.flow3:configuration:0.12388801574707
typo3.flow3:systemlogger:0.0020151138305664
typo3.flow3:errorhandling:0.00089502334594727
typo3.flow3:cachemanagement:0.0063209533691406
typo3.flow3:cachemanagement:forceflush:2.1934509277344E-5
typo3.flow3:objectmanagement:compiletime:create:0.0015249252319336
typo3.flow3:reflectionservice:0.10037994384766
typo3.flow3:objectmanagement:compiletime:finalize: 1.4139840602875
typo3.flow3:classfilemonitor:0.020915985107422
typo3.flow3:objectmanagement:proxyclasses: 1.8261530399323
typo3.flow3:classloader:cache:0.00050997734069824
typo3.flow3:reflectionservice:0.10236096382141
typo3.flow3:objectmanagement:runtime:0.0054521560668945
typo3.flow3:classfilemonitor:0.020391941070557
typo3.flow3:persistence:0.031031847000122
typo3.flow3:session:2.5033950805664E-5
typo3.flow3:resources:0.01110315322876
typo3.flow3:i18n:1.5472700595856
typo3.flow3:objectmanagement:proxyclasses: 18.207201004028
typo3.flow3:classloader:cache:0.0005500316619873
typo3.flow3:reflectionservice:0.10491704940796
typo3.flow3:objectmanagement:runtime:0.0066149234771729
typo3.flow3:classfilemonitor:0.017029047012329
typo3.flow3:persistence:0.029564142227173
typo3.flow3:session:3.1948089599609E-5
typo3.flow3:resources:0.0079519748687744
typo3.flow3:i18n:0.0047850608825684

Run TWO:

typo3.flow3:configuration:0.12163710594177
typo3.flow3:systemlogger:0.0020179748535156
typo3.flow3:errorhandling:0.00092196464538574
typo3.flow3:cachemanagement:0.0060291290283203
typo3.flow3:configuration:0.12191319465637
typo3.flow3:systemlogger:0.002047061920166
typo3.flow3:errorhandling:0.001039981842041
typo3.flow3:cachemanagement:0.0061960220336914
typo3.flow3:cachemanagement:forceflush:1.5020370483398E-5
typo3.flow3:objectmanagement:compiletime:create:0.0017240047454834
typo3.flow3:reflectionservice:0.10337805747986
typo3.flow3:objectmanagement:compiletime:finalize: 1.3875679969788
typo3.flow3:classfilemonitor:0.01531195640564
typo3.flow3:objectmanagement:proxyclasses: 1.7831211090088
typo3.flow3:classloader:cache:0.00031590461730957
typo3.flow3:reflectionservice:0.10096216201782
typo3.flow3:objectmanagement:runtime:0.0060441493988037
typo3.flow3:classfilemonitor:0.017793893814087
typo3.flow3:persistence:0.02872896194458
typo3.flow3:session:2.3841857910156E-5
typo3.flow3:resources:0.010877132415771
typo3.flow3:i18n:0.0043652057647705

Run THREE:

typo3.flow3:configuration:0.12266802787781
typo3.flow3:systemlogger:0.0025391578674316
typo3.flow3:errorhandling:0.0011699199676514
typo3.flow3:cachemanagement:0.0061540603637695
typo3.flow3:configuration:0.12189602851868
typo3.flow3:systemlogger:0.0026230812072754
typo3.flow3:errorhandling:0.00093388557434082
typo3.flow3:cachemanagement:0.0063381195068359
typo3.flow3:cachemanagement:forceflush:1.7881393432617E-5
typo3.flow3:objectmanagement:compiletime:create:0.0012540817260742
typo3.flow3:reflectionservice:0.09977388381958
typo3.flow3:objectmanagement:compiletime:finalize: 1.399288892746
typo3.flow3:classfilemonitor:0.01502799987793
typo3.flow3:objectmanagement:proxyclasses: 1.789400100708
typo3.flow3:classloader:cache:0.00053691864013672
typo3.flow3:reflectionservice:0.10394382476807
typo3.flow3:objectmanagement:runtime:0.0059390068054199
typo3.flow3:classfilemonitor:0.018316030502319
typo3.flow3:persistence:0.030678987503052
typo3.flow3:session:1.6212463378906E-5
typo3.flow3:resources:0.0092267990112305
typo3.flow3:i18n:0.0053219795227051

Compare:

Windows Run ONE:
typo3.flow3:objectmanagement:compiletime:finalize: 22.969246864319
typo3.flow3:objectmanagement:compiletime:finalize: 5.3540909290314
typo3.flow3:objectmanagement:proxyclasses: 6.4099040031433
typo3.flow3:objectmanagement:proxyclasses: 63.889156103134
~98,62

Windows Run TWO:
typo3.flow3:objectmanagement:compiletime:finalize: 5.8308291435242
typo3.flow3:objectmanagement:proxyclasses: 6.8538370132446
~12,68 (~1/8)

Debian Run ONE:
typo3.flow3:objectmanagement:compiletime:finalize: 11.022831201553
typo3.flow3:objectmanagement:compiletime:finalize: 1.4139840602875
typo3.flow3:objectmanagement:proxyclasses: 1.8261530399323
typo3.flow3:objectmanagement:proxyclasses: 18.207201004028
~32,47

Debian Run TWO:
typo3.flow3:objectmanagement:compiletime:finalize: 1.3875679969788
typo3.flow3:objectmanagement:proxyclasses: 1.7831211090088
~3,16 (~1/10)

So Run ONE takes about three times as long and Run TWO take about four times as long, if you just look at objectmanagement:compiletime:finalize and objectmanagement:proxyclasses.

#3 Updated by Bastian Waidelich over 3 years ago

@Thomas Thanks a lot for the testing! I've seen Windows laptops where it was faster but I'm pretty sure something goes wrong with the subrequest. I would be interested in numbers from other systems (= Mac/Linux)

#4 Updated by Philipp Gampe over 3 years ago

I saw a list of 20000 objects render for more then 15 minutes on windows. Besides that this is a bad idea anyway, it should not take so long.

#5 Updated by Irene Höppner over 3 years ago

Windows (exactly said ntfs) has huuuge problems with performance if it has to handle lots of small files. Maybe that's one of the problems...

#6 Updated by Thomas Allmer over 3 years ago

Irene Höppner wrote:

Windows (exactly said ntfs) has huuuge problems with performance if it has to handle lots of small files. Maybe that's one of the problems...

that's exactly what I thought too...
but using FAT32 and a RAMDisk was even worse... see my test results above... so I doubt its only a problem with NTFS...

#7 Updated by Robert Lemke over 3 years ago

  • Category set to Cache
  • Complexity set to nightmare

Allright, here are some numbers from my MacBook Pro 2.66 GHz, 8 GB RAM with SSD. I ran these tests with the new file monitoring I've been working on today.

flow3.typo3.org distribution without any frozen caches.

CLI with empty caches:

typo3.flow3:configuration: 0.054586887359619
typo3.flow3:systemlogger: 0.0018491744995117
typo3.flow3:errorhandling: 0.00091791152954102
typo3.flow3:cachemanagement: 0.0047760009765625
typo3.flow3:configuration: 0.070320844650269
typo3.flow3:systemlogger: 0.0024950504302979
typo3.flow3:errorhandling: 0.00095510482788086
typo3.flow3:cachemanagement: 0.0048651695251465
typo3.flow3:cachemanagement:forceflush: 1.0967254638672E-5
typo3.flow3:objectmanagement:compiletime:create: 0.051064968109131
typo3.flow3:reflectionservice: 0.16687822341919
typo3.flow3:objectmanagement:compiletime:finalize: 9.7601149082184
typo3.flow3:systemfilemonitor: 0.21332287788391
typo3.flow3:configuration: 0.061176061630249
typo3.flow3:systemlogger: 0.0024659633636475
typo3.flow3:errorhandling: 0.0011069774627686
typo3.flow3:cachemanagement: 0.0055298805236816
typo3.flow3:configuration: 0.058912992477417
typo3.flow3:systemlogger: 0.0016498565673828
typo3.flow3:errorhandling: 0.0009000301361084
typo3.flow3:cachemanagement: 0.0050208568572998
typo3.flow3:cachemanagement:forceflush: 1.1920928955078E-5
typo3.flow3:objectmanagement:compiletime:create: 0.0017020702362061
typo3.flow3:reflectionservice: 0.055745840072632
typo3.flow3:objectmanagement:compiletime:finalize: 0.83430099487305
typo3.flow3:systemfilemonitor: 0.025731086730957
typo3.flow3:objectmanagement:proxyclasses: 1.1017479896545
typo3.flow3:classloader:cache: 0.00034809112548828
typo3.flow3:reflectionservice: 0.04471492767334
typo3.flow3:objectmanagement:runtime: 0.0052928924560547
typo3.flow3:systemfilemonitor: 0.03460693359375
typo3.flow3:persistence: 0.19334816932678
typo3.flow3:session: 2.1934509277344E-5
typo3.flow3:resources: 0.11785197257996
typo3.flow3:i18n: 2.6607758998871
typo3.flow3:objectmanagement:proxyclasses: 17.408144950867
typo3.flow3:classloader:cache: 0.00050902366638184
typo3.flow3:reflectionservice: 0.043591022491455
typo3.flow3:objectmanagement:runtime: 0.0058629512786865
typo3.flow3:systemfilemonitor: 0.033476114273071
typo3.flow3:persistence: 0.020555019378662
typo3.flow3:session: 1.5974044799805E-5
typo3.flow3:resources: 0.0065140724182129
typo3.flow3:i18n: 0.0036249160766602

Total time: 12s

CLI second run:

typo3.flow3:configuration: 0.059010028839111
typo3.flow3:systemlogger: 0.0015878677368164
typo3.flow3:errorhandling: 0.00079703330993652
typo3.flow3:cachemanagement: 0.0044209957122803
typo3.flow3:configuration: 0.060646057128906
typo3.flow3:systemlogger: 0.0015139579772949
typo3.flow3:errorhandling: 0.00084590911865234
typo3.flow3:cachemanagement: 0.0044529438018799
typo3.flow3:cachemanagement:forceflush: 1.0967254638672E-5
typo3.flow3:objectmanagement:compiletime:create: 0.001162052154541
typo3.flow3:reflectionservice: 0.049525022506714
typo3.flow3:objectmanagement:compiletime:finalize: 0.78819394111633
typo3.flow3:systemfilemonitor: 0.027003049850464
typo3.flow3:objectmanagement:proxyclasses: 1.0473079681396
typo3.flow3:classloader:cache: 0.00027704238891602
typo3.flow3:reflectionservice: 0.04342794418335
typo3.flow3:objectmanagement:runtime: 0.0041968822479248
typo3.flow3:systemfilemonitor: 0.031425952911377
typo3.flow3:persistence: 0.021962881088257
typo3.flow3:session: 1.5974044799805E-5
typo3.flow3:resources: 0.0084171295166016
typo3.flow3:i18n: 0.0039389133453369

Total time: 1.5s

CLI run after one controller class was modified:

typo3.flow3:configuration: 0.057188034057617
typo3.flow3:systemlogger: 0.0016429424285889
typo3.flow3:errorhandling: 0.00079607963562012
typo3.flow3:cachemanagement: 0.0048038959503174
typo3.flow3:configuration: 0.060167074203491
typo3.flow3:systemlogger: 0.0017421245574951
typo3.flow3:errorhandling: 0.00080204010009766
typo3.flow3:cachemanagement: 0.0045828819274902
typo3.flow3:cachemanagement:forceflush: 1.0013580322266E-5
typo3.flow3:objectmanagement:compiletime:create: 0.0012118816375732
typo3.flow3:reflectionservice: 0.046766996383667
typo3.flow3:objectmanagement:compiletime:finalize: 0.79989504814148
typo3.flow3:systemfilemonitor: 0.2239191532135
typo3.flow3:objectmanagement:proxyclasses: 2.6019530296326
typo3.flow3:classloader:cache: 0.00026893615722656
typo3.flow3:reflectionservice: 0.049686908721924
typo3.flow3:objectmanagement:runtime: 0.0038700103759766
typo3.flow3:systemfilemonitor: 0.064115047454834
typo3.flow3:persistence: 0.024020910263062
typo3.flow3:session: 1.215934753418E-5
typo3.flow3:resources: 0.0070350170135498
typo3.flow3:i18n: 0.0042970180511475

Total time: 2.9 s

#8 Updated by Adrian Föder over 3 years ago

ok guys, this is my stats. Running on a Linux Debian Squeeze, Xen Enterprise Server (VM), 2,3 GHz, 1024 MB RAM.
Commands and their result of course in that order.
Btw: I modified the echo to

1echo str_pad($step->getIdentifier(), 50, ' ') . ': ' . number_format($end - $start, 5, ',', '.') . PHP_EOL;
for a better-comparable output (fix-padded columns).

./flow3 flow3:cache:flush --force

typo3.flow3:configuration                         : 0,06209
typo3.flow3:systemlogger                          : 0,00252
typo3.flow3:errorhandling                         : 0,00123
typo3.flow3:cachemanagement                       : 0,00570

./flow3

typo3.flow3:configuration                         : 0,06204
typo3.flow3:systemlogger                          : 0,00247
typo3.flow3:errorhandling                         : 0,00124
typo3.flow3:cachemanagement                       : 0,00565
typo3.flow3:configuration                         : 0,06075
typo3.flow3:systemlogger                          : 0,00232
typo3.flow3:errorhandling                         : 0,00115
typo3.flow3:cachemanagement                       : 0,00544
typo3.flow3:cachemanagement:forceflush            : 0,00001
typo3.flow3:objectmanagement:compiletime:create   : 0,00206
typo3.flow3:reflectionservice                     : 0,01369
typo3.flow3:objectmanagement:compiletime:finalize : 6,80219
typo3.flow3:systemfilemonitor                     : 0,32879
typo3.flow3:configuration                         : 0,06295
typo3.flow3:systemlogger                          : 0,00263
typo3.flow3:errorhandling                         : 0,00130
typo3.flow3:cachemanagement                       : 0,00687
typo3.flow3:configuration                         : 0,06239
typo3.flow3:systemlogger                          : 0,00268
typo3.flow3:errorhandling                         : 0,00135
typo3.flow3:cachemanagement                       : 0,00604
typo3.flow3:cachemanagement:forceflush            : 0,00002
typo3.flow3:objectmanagement:compiletime:create   : 0,00227
typo3.flow3:reflectionservice                     : 0,11998
typo3.flow3:objectmanagement:compiletime:finalize : 1,02334
typo3.flow3:systemfilemonitor                     : 0,06789
typo3.flow3:objectmanagement:proxyclasses         : 1,43865
typo3.flow3:classloader:cache                     : 0,00042
typo3.flow3:reflectionservice                     : 0,11491
typo3.flow3:objectmanagement:runtime              : 0,00710
typo3.flow3:systemfilemonitor                     : 0,06551
typo3.flow3:persistence                           : 0,03386
typo3.flow3:session                               : 0,00001
typo3.flow3:resources                             : 0,01033
typo3.flow3:i18n                                  : 1,09235
typo3.flow3:objectmanagement:proxyclasses        : 12,51410
typo3.flow3:classloader:cache                     : 0,00090
typo3.flow3:reflectionservice                     : 0,11620
typo3.flow3:objectmanagement:runtime              : 0,00656
typo3.flow3:systemfilemonitor                     : 0,06374
typo3.flow3:persistence                           : 0,03311
typo3.flow3:session                               : 0,00002
typo3.flow3:resources                             : 0,01067
typo3.flow3:i18n                                  : 0,01155

./flow3 help

typo3.flow3:configuration                         : 0,06113
typo3.flow3:systemlogger                          : 0,00244
typo3.flow3:errorhandling                         : 0,00124
typo3.flow3:cachemanagement                       : 0,00579
typo3.flow3:configuration                         : 0,06088
typo3.flow3:systemlogger                          : 0,00243
typo3.flow3:errorhandling                         : 0,00120
typo3.flow3:cachemanagement                       : 0,00560
typo3.flow3:cachemanagement:forceflush            : 0,00001
typo3.flow3:objectmanagement:compiletime:create   : 0,00206
typo3.flow3:reflectionservice                     : 0,11249
typo3.flow3:objectmanagement:compiletime:finalize : 1,01905
typo3.flow3:systemfilemonitor                     : 0,05919
typo3.flow3:objectmanagement:proxyclasses         : 1,41990
typo3.flow3:classloader:cache                     : 0,00044
typo3.flow3:reflectionservice                     : 0,11151
typo3.flow3:objectmanagement:runtime              : 0,00645
typo3.flow3:systemfilemonitor                     : 0,06167
typo3.flow3:persistence                           : 0,03277
typo3.flow3:session                               : 0,00001
typo3.flow3:resources                             : 0,01048
typo3.flow3:i18n                                  : 0,01164

I'll provide Windows stats soon.

#9 Updated by Adrian Föder over 3 years ago

ok, here Windows 7, 64bit, 8GB RAM, Intel Core i7-2720QM @ 2.20 GHz, 8 Threads (is that important)?

./flow3 flow3:cache:flush --force

typo3.flow3:configuration                         : 0,06577
typo3.flow3:systemlogger                          : 0,00255
typo3.flow3:errorhandling                         : 0,00121
typo3.flow3:cachemanagement                       : 0,00531

./flow3

typo3.flow3:configuration                         : 0,06469
typo3.flow3:systemlogger                          : 0,00270
typo3.flow3:errorhandling                         : 0,00132
typo3.flow3:cachemanagement                       : 0,00530
typo3.flow3:configuration                         : 0,07086
typo3.flow3:systemlogger                          : 0,00344
typo3.flow3:errorhandling                         : 0,00155
typo3.flow3:cachemanagement                       : 0,00545
typo3.flow3:cachemanagement:forceflush            : 0,00001
typo3.flow3:objectmanagement:compiletime:create   : 0,00169
typo3.flow3:reflectionservice                     : 0,01539
typo3.flow3:objectmanagement:compiletime:finalize : 4,86031
typo3.flow3:systemfilemonitor                     : 0,13754
typo3.flow3:configuration                         : 0,07104
typo3.flow3:systemlogger                          : 0,00412
typo3.flow3:errorhandling                         : 0,00124
typo3.flow3:cachemanagement                       : 0,00551
typo3.flow3:configuration                         : 0,06857
typo3.flow3:systemlogger                          : 0,00307
typo3.flow3:errorhandling                         : 0,00130
typo3.flow3:cachemanagement                       : 0,00520
typo3.flow3:cachemanagement:forceflush            : 0,00001
typo3.flow3:objectmanagement:compiletime:create   : 0,00170
typo3.flow3:reflectionservice                     : 0,06137
typo3.flow3:objectmanagement:compiletime:finalize : 0,83642
typo3.flow3:systemfilemonitor                     : 0,05678
typo3.flow3:objectmanagement:proxyclasses         : 1,32563
typo3.flow3:classloader:cache                     : 0,00068
typo3.flow3:reflectionservice                     : 0,04828
typo3.flow3:objectmanagement:runtime              : 0,00442
typo3.flow3:systemfilemonitor                     : 0,05561
typo3.flow3:persistence                           : 0,02637
typo3.flow3:session                               : 0,00001
typo3.flow3:resources                             : 0,02098
typo3.flow3:i18n                                  : 7,52904
typo3.flow3:objectmanagement:proxyclasses        : 21,32258
typo3.flow3:classloader:cache                     : 0,00102
typo3.flow3:reflectionservice                     : 0,04835
typo3.flow3:objectmanagement:runtime              : 0,00505
typo3.flow3:systemfilemonitor                     : 0,06527
typo3.flow3:persistence                           : 0,02585
typo3.flow3:session                               : 0,00001
typo3.flow3:resources                             : 0,01133
typo3.flow3:i18n                                  : 0,00488

./flow3 help

typo3.flow3:configuration                         : 0,07297
typo3.flow3:systemlogger                          : 0,00248
typo3.flow3:errorhandling                         : 0,00125
typo3.flow3:cachemanagement                       : 0,00513
typo3.flow3:configuration                         : 0,06498
typo3.flow3:systemlogger                          : 0,00270
typo3.flow3:errorhandling                         : 0,00125
typo3.flow3:cachemanagement                       : 0,00537
typo3.flow3:cachemanagement:forceflush            : 0,00001
typo3.flow3:objectmanagement:compiletime:create   : 0,00170
typo3.flow3:reflectionservice                     : 0,05492
typo3.flow3:objectmanagement:compiletime:finalize : 0,80001
typo3.flow3:systemfilemonitor                     : 0,05578
typo3.flow3:objectmanagement:proxyclasses         : 1,19641
typo3.flow3:classloader:cache                     : 0,00056
typo3.flow3:reflectionservice                     : 0,06066
typo3.flow3:objectmanagement:runtime              : 0,00506
typo3.flow3:systemfilemonitor                     : 0,05693
typo3.flow3:persistence                           : 0,02497
typo3.flow3:session                               : 0,00001
typo3.flow3:resources                             : 0,01120
typo3.flow3:i18n                                  : 0,00483

I have to say that, on this machine, it really works fast and nice; but I absolutely experienced veeery long waiting times on my last Windows machine. But however, the 21 seconds for the proxyclasses are relatively slow even here.

#10 Updated by Karsten Dambekalns about 3 years ago

  • Status changed from Accepted to Resolved
  • % Done changed from 0 to 100

This is solved for now. Further speed improvements should be done by someone with access to a Windows machine and clear debugging/profiling data to measure progress.

Also available in: Atom PDF