{"id":949,"date":"2009-02-16T18:10:03","date_gmt":"2009-02-16T17:10:03","guid":{"rendered":"http:\/\/blog.it4sport.de\/?p=949"},"modified":"2009-02-16T18:10:03","modified_gmt":"2009-02-16T17:10:03","slug":"spiderman-is-having-me-for-dinner-tonight-teil-3","status":"publish","type":"post","link":"https:\/\/gmbd.de\/wordpress\/index.php\/2009\/02\/16\/spiderman-is-having-me-for-dinner-tonight-teil-3\/","title":{"rendered":"Spiderman is having me for dinner tonight\u2026 Teil 3"},"content":{"rendered":"<p>\t\t\t\tIch hab ja schon in <a href=\"http:\/\/gmbd.de\/2009\/02\/11\/spiderman-is-having-me-for-dinner-tonight\/\">Teil 1<\/a> geschrieben, dass ich <a href=\"http:\/\/pecl.php.net\/package\/APC\">apc<\/a> einsetze. Das Teil bringt ohne irgend welche Programmierung schon einiges. Es h\u00e4lt den Bytecode der PHP-Skripts im Speicher. Den Erfolg kann man ganz einfach so abrufen:<\/p>\n<pre lang=\"php\" line=\"1\">\nprint_r(apc_cache_info());\n<\/pre>\n<p>Mit ein bisschen Programmieraufwand kann man Dank apc noch viel mehr rausholen. Auf <a href=\"http:\/\/www.rothsee-triathlon.de\">rothsee-triathlon.de<\/a> ist nicht alles neu und in php. Manche Teile laufen auch als alte Perl Skripts im Hintergrund. Die Hole ich mir dann per http zur Laufzeit rein. Nachdem das aber immer wieder die gleichen Files sind l\u00e4sst sich der Content prima cachen. Also hab ich eine Funktion f\u00fcr diesen Zweck definiert:<\/p>\n<pre lang=\"php\" line=\"1\">\nfunction request_cache($url) {\n        if (function_exists('apc_fetch')) {\n           $md5=md5($url);\n           $doc = apc_fetch($md5,&$success);\n\t   if(!$success) {\n\t\t$doc = file_get_contents($url);\n\t\tif ($doc === false) return \"\";\n\t\tapc_store($md5, $doc);\n                $doc .= \"<!-- \".$md5.\" now cached -->\\n\";\n           } else {\n                $doc .= \"<!-- already cached -->\\n\";\n           }\n\t} else {\n\t\t$doc = file_get_contents($url);\n                $doc .= \"<!-- not cached -->\\n\";\n        }\n\n\treturn $doc;\n}\n<\/pre>\n<p>und rufe sie wie folgt auf:<\/p>\n<pre lang=\"php\" line=\"1\">\n$value = request_cache($request);\n<\/pre>\n<p>Die gecachte Seite ist &#8222;nur&#8220; ca. um den Faktor 100 schneller. Kleiner Aufwand hoher Nutzen. Sehr geil. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich hab ja schon in Teil 1 geschrieben, dass ich apc einsetze. Das Teil bringt ohne irgend welche Programmierung schon einiges. Es h\u00e4lt den Bytecode der PHP-Skripts im Speicher. Den Erfolg kann man ganz einfach so abrufen: print_r(apc_cache_info()); Mit ein bisschen Programmieraufwand kann man Dank apc noch viel mehr rausholen. Auf rothsee-triathlon.de ist nicht alles\u2026 <span class=\"read-more\"><a href=\"https:\/\/gmbd.de\/wordpress\/index.php\/2009\/02\/16\/spiderman-is-having-me-for-dinner-tonight-teil-3\/\">Weiterlesen &raquo;<\/a><\/span><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[51],"tags":[75,281],"_links":{"self":[{"href":"https:\/\/gmbd.de\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/949"}],"collection":[{"href":"https:\/\/gmbd.de\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gmbd.de\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gmbd.de\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gmbd.de\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=949"}],"version-history":[{"count":0,"href":"https:\/\/gmbd.de\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/949\/revisions"}],"wp:attachment":[{"href":"https:\/\/gmbd.de\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gmbd.de\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gmbd.de\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}