Tt subtemplates-caching
-
Upload
valeriy-studennikov -
Category
Technology
-
view
838 -
download
0
description
Transcript of Tt subtemplates-caching
![Page 1: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/1.jpg)
Óñêîðåíèå îáðàáîòêè øàáëîíîâ
Template-ToolkitÈëè êýøèðîâàíèå ïîäøàáëîíîâ â TT
Âàëåðèé Ñòóäåííèêîâ,[email protected]
Èþíü 2010YAPC 2010
![Page 2: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/2.jpg)
Òÿæ¼ëûé ñàéò...
![Page 3: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/3.jpg)
Òîðìîçèò...
Çàïðîñû îáðàáàòûâàþòñÿ ìåäëåííî...
Document Length: 121170 bytes
Concurrency Level: 1...Requests per second: 6.55 [#/sec] (mean)Time per request: 152.677 [ms] (mean)
![Page 4: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/4.jpg)
Ðàçáèðàåìñÿ â ïðè÷èíàõ...
[debug] Rendering template "index.html"[info] Request took 0.155370s (6.436/s).--------------------------------------+-----------.| Action | Time |+--------------------------------------+-----------+| -> /_DISPATCH | 0.138753s || -> /_BEGIN | 0.005263s || /begin | 0.004580s || -> /_AUTO | 0.000968s || /auto | 0.000270s || -> /_ACTION | 0.000883s || /index | 0.000363s || -> /_END | 0.129827s || /end | 0.129265s || -> FrontOffice::View::TT->process | 0.128254s |'--------------------------------------+-----------'
![Page 5: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/5.jpg)
Êàê äåòàëèçîâàòü ïî ïîäøàáëîíàì?
Íàì ïîìîæåò ñòàòüÿ ¾Pro�ling in Template Toolkitvia overriding¿ by Randal L. Schwartz
package My::Template::Context;use base qw(Template::Context);
my @stack;my %totals;
sub process {my $self = shift;
my $template = $_[0];if (UNIVERSAL::isa($template, "Template::Document")) {
$template = $template->name || $template;}
push @stack, [time, times];
my @return = wantarray ?$self->SUPER::process(@_) :scalar $self->SUPER::process(@_);
my @delta_times = @{pop @stack};@delta_times = map { $_ - shift @delta_times } time, times;for (0..$#delta_times) {
$totals{$template}[$_] += $delta_times[$_];for my $parent (@stack) {$parent->[$_] += $delta_times[$_] if @stack; # parent adjust
}}$totals{$template}[5] ++; # count of calls
unless (@stack) {## top level again, time to display resultsprint STDERR "-- $template at ". localtime, ":\n";printf STDERR "%3s %3s %6s %6s %6s %6s %s\n",
qw(cnt clk user sys cuser csys template);for my $template (sort keys %totals) {
my @values = @{$totals{$template}};printf STDERR "%3d %3d %6.2f %6.2f %6.2f %6.2f %s\n",
$values[5], @values[0..4], $template;}print STDERR "-- end\n";%totals = (); # clear out results
}
# return value from process:wantarray ? @return : $return[0];
}
$Template::Config::CONTEXT = __PACKAGE__;
1;
![Page 6: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/6.jpg)
Ïðîôàéëèíã ïîäøàáëîíîâ
-- index.html at Thu Jun 10 18:20:56 2010:cnt clk user sys cuser csys template1 0.0056 0.0000 0 0 0 common/footer_common.inc1 0.0006 0.0000 0 0 0 common/header_topline.inc1 0.0006 0.0000 0 0 0 footer.inc1 0.0004 0.0000 0 0 0 footer_screen.inc1 0.0010 0.0000 0 0 0 header.inc1 0.0010 0.0000 0 0 0 header_screen.inc1 0.0187 0.0200 0 0 0 header_screen_body_cached.inc1 0.0005 0.0000 0 0 0 header_screen_head_cached.inc1 0.0015 0.0000 0 0 0 index.html1 0.0036 0.0000 0 0 0 index_body.inc1 0.0145 0.0200 0 0 0 index_promo_bar.inc1 0.0775 0.0800 0 0 0 print/zones.inc1 0.0004 0.0000 0 0 0 tabs.inc
![Page 7: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/7.jpg)
Ìîäóëü äëÿ êýøèðîâàíèÿ
use Template : : Context : : Cacheab le ;
Template : : Context : : Cacheab le : : c on f i gu r e_cach i ng (\&SRS : : Cache : : Memcached : : get ,\&SRS : : Cache : : Memcached : : put ,
) ;
$Template : : Context : : Cacheab le : : DEBUG = 1 ;
![Page 8: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/8.jpg)
Êàê ýòî âûãëÿäèò â øàáëîíàõ
index.html:
[% PROCESS index_reg_bar.inclang = langpricegroup = pricegroup__cache_time = -1
%]
![Page 9: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/9.jpg)
Êàê ýòî âûãëÿäèò â øàáëîíàõ
header_screen.inc:
[%- PROCESSheader_screen_body_cached.inc...__nocache_banner_no = banner_no__nocache_lang = lang__nocache_wide_flag = wide_flag__nocache_path_query = path_query__nocache_user_id = user_id__nocache_user_balance = user_balance...__nocache_req_method = c.req.method__cache_time = user_messages.size() ? 0 : -1
-%]
![Page 10: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/10.jpg)
Âðóáàåì êýøèðîâàíèå...
-- index.html at Thu Jun 10 18:52:04 2010:cnt clk user sys cuser csys template
1 0.0002 0 0 0 0 footer.inc CACHED1 0.0010 0 0 0 0 header.inc1 0.0005 0 0 0 0 header_screen.inc CACHED1 0.0015 0 0 0 0 index.html1 0.0002 0 0 0 0 index_body.inc CACHED1 0.0003 0 0 0 0 index_promo_bar.inc CACHED1 0.0004 0 0 0 0 print/zones.inc CACHED
-- end
![Page 11: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/11.jpg)
Âðóáàåì êýøèðîâàíèå...
[debug] Rendering template "index.html"[info] Request took 0.029016s (34.464/s).-------------------------------------+-----------.| Action | Time |+-------------------------------------+-----------+| -> /_DISPATCH | 0.014121s || -> /_BEGIN | 0.002807s || /begin | 0.002152s || -> /_AUTO | 0.000860s || /auto | 0.000276s || -> /_ACTION | 0.000884s || /index | 0.000370s || -> /_END | 0.007854s || /end | 0.007279s || -> FrontOffice::View::TT->process| 0.006267s |'-------------------------------------+-----------'
![Page 12: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/12.jpg)
Ðåçóëüòàò...
Server Hostname: www1.reg.ruServer Port: 80
Document Path: /Document Length: 121176 bytes
Concurrency Level: 1Time taken for tests: 9.524 secondsTotal transferred: 36445800 bytesHTML transferred: 36352800 bytesRequests per second: 31.50 [#/sec] (mean)Time per request: 31.746 [ms] (mean)Transfer rate: 3737.15 [Kbytes/sec] received
![Page 13: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/13.jpg)
Ðåçóëüòàò...
Óìåíüøèëè îáùåå âðåìÿ îáðàáîòêè çàïðîñà â 4.9ðàçà;
Óñêîðèëè îáðàáîòêó øàáëîíà â 20 ðàç;
![Page 14: Tt subtemplates-caching](https://reader034.fdocuments.net/reader034/viewer/2022051817/547bccb25806b5d13f8b463d/html5/thumbnails/14.jpg)
Ñïàñèáî!
Ìîäóëü Template::Context::Cacheable ëåæèò òóòhttps://svn.reg.ru/oss/Template-Context-Cacheable/