]> Sergey Matveev's repositories - public-inbox.git/commitdiff
xt/perf-msgview: switch to multipart_text_as_html
authorEric Wong <e@yhbt.net>
Sat, 25 Jan 2020 04:45:01 +0000 (04:45 +0000)
committerEric Wong <e@yhbt.net>
Mon, 27 Jan 2020 02:59:09 +0000 (02:59 +0000)
It's a more widely-used (but still internal) API which will
probably last longer than msg_html.  It also reaches deeper into
the stack and avoids the overhead of ->getline via PSGI, so it's
faster and gives a more accurate measurement of lower-level parts.

xt/perf-msgview.t

index 8c9037ee215e019dd9664a4c694d5b7034eae627..9375977aac883c5c730537da045e99a77828ab00 100644 (file)
@@ -35,18 +35,18 @@ my $ctx = {
 my ($str, $mime, $res, $cmt, $type);
 my $n = 0;
 my $t = timeit(1, sub {
 my ($str, $mime, $res, $cmt, $type);
 my $n = 0;
 my $t = timeit(1, sub {
+       my $obuf = '';
+       $ctx->{obuf} = \$obuf;
        while (<$fh>) {
                ($cmt, $type) = split / /;
                next if $type ne 'blob';
                ++$n;
                $str = $git->cat_file($cmt);
                $mime = PublicInbox::MIME->new($str);
        while (<$fh>) {
                ($cmt, $type) = split / /;
                next if $type ne 'blob';
                ++$n;
                $str = $git->cat_file($cmt);
                $mime = PublicInbox::MIME->new($str);
-               $res = PublicInbox::View::msg_html($ctx, $mime);
-               $res = $res->[2];
-               while (defined($res->getline)) {}
-               $res->close;
+               PublicInbox::View::multipart_text_as_html($mime, '../', $ctx);
+               $obuf = '';
        }
 });
        }
 });
-diag 'msg_html took '.timestr($t)." for $n messages";
+diag 'multipart_text_as_html took '.timestr($t)." for $n messages";
 ok 1;
 done_testing();
 ok 1;
 done_testing();