Slide 1

Slide 1 text

ApcClassLoader symfony meetup #12 @polidog

Slide 2

Slide 2 text

ࣗݾ঺հ • @polidog • λϏΟίϜגࣜձࣾͰSymfonyॻ͍ͯ·͢ • ࠷ۙ͸BEARSundayษڧͯ͠·͢

Slide 3

Slide 3 text

ApcClassLoaderʁ

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

ApcClassLoaderʁ • web/app.phpͰίϝϯτΞ΢τͯ͋͠Δ΍ͭ
 ͱࢥͬͨΒ࠷৽ͷSymfonyͩͱ࡟আ͞Εͯ ͨɾɾɾ • ͳͯ͘΋ಈ͘ • ͳΜͱͳ࣮͘ߦ଎౓͕ૣ͘ͳΓͦ͏

Slide 6

Slide 6 text

ͱΓ͋͑ͣಈ͔ͯ͠ΈΑ͏

Slide 7

Slide 7 text

apc(u)͕ඞཁͰ͢ɻ

Slide 8

Slide 8 text

brew install php70-apcu

Slide 9

Slide 9 text

web/app.phpΛฤू

Slide 10

Slide 10 text

use Symfony\Component\ClassLoader\ApcClassLoader; $apcLoader = new ApcClassLoader(sha1(__FILE__), $loader);
 $loader->unregister();
 $apcLoader->register(true);


Slide 11

Slide 11 text

ܭଌͯ͠Έͨ

Slide 12

Slide 12 text

ܭଌ৚݅ • MacBook Pro (Retina, 15-inch, Mid 2014) 16GB Memory, 2.2 GHz Intel Core i7 • php7.0.6 • ϏϧτΠϯαʔό࢖ͬͯΔ • ඵؒ10ϦΫΤετΛ5ඵִؒ • vegeta࢖ͬͯݕূ
 https://github.com/tsenart/vegeta

Slide 13

Slide 13 text

ApcClassLoaderͳ͠

Slide 14

Slide 14 text

$ echo "GET http://localhost:8000/" | vegeta attack -rate=50 - duration=5s | vegeta report
 
 Requests [total, rate] 50, 10.20
 Duration [total, attack, wait] 4.91808977s, 4.899999865s, 18.089905ms
 Latencies [mean, 50, 95, 99, max] 29.650298ms, 17.586892ms, 39.421233ms, 216.898977ms, 304.779713ms
 Bytes In [total, mean] 230050, 4601.00
 Bytes Out [total, mean] 0, 0.00
 Success [ratio] 100.00%
 Status Codes [code:count] 200:50
 Error Set:

Slide 15

Slide 15 text

ApcClassLoader͋Γ

Slide 16

Slide 16 text

$ echo "GET http://localhost:8000/" | vegeta attack -rate=50 - duration=5s | vegeta report
 
 Requests [total, rate] 50, 10.20
 Duration [total, attack, wait] 4.913044931s, 4.899999873s, 13.045058ms
 Latencies [mean, 50, 95, 99, max] 12.37756ms, 12.595445ms, 13.760764ms, 13.93599ms, 15.280703ms
 Bytes In [total, mean] 230050, 4601.00
 Bytes Out [total, mean] 0, 0.00
 Success [ratio] 100.00%
 Status Codes [code:count] 200:50
 Error Set:

Slide 17

Slide 17 text

ApcClassLoaderૣ͍ʂʂʂ

Slide 18

Slide 18 text

ApcClassLoader͸ԿΛͯ͠ ͍Δͷ͔ʁ

Slide 19

Slide 19 text

ApcClassLoader͸ԿΛ͍ͯ͠ Δͷ͔ʁ • spl_autoload_registerʹApcClassLoaderͷloadClassϝιουΛొ࿥͠ ͍ͯΔ͚ͩ • findFileͰapcuʹΩϟογϡ͞Ε͍ͯͳ͚Ε͹ɺϑΝΠϧΛΩϟογϡ ͢ΔΑ͏ʹ͍ͯ͠Δ
 https://git.io/vrHLh • ௨ৗ͸PSRͷComposer\Autoload\ClassLoaderͷfindFile͕࣮ߦ͞Εͯ ͍ΔͷͰ஗͍ɻ
 https://git.io/vrHLN


Slide 20

Slide 20 text

·ͱΊ

Slide 21

Slide 21 text

·ͱΊ • ApcClassLoader͸ૣ͍ʂ • ϓϩμΫγϣϯͰ࢖ͬͨ΄͏͕ྑͦ͞͏ • ϝϞϦগͳ͍࣮ߦ؀ڥͩͱͪΐͬͱ৺഑
 (ࠓ౓ௐ΂Δʣ

Slide 22

Slide 22 text

͓͠·͍ɻ