Open GoogleCodeExporter opened 9 years ago
fix from issue 132 is done. based on that i have that effect
Original comment by i...@medic-world.de
on 6 May 2010 at 10:45
Your summary and steps to reproduce say two different things. Is JSMin slower
before
or after the fix is applied? How much slower? How large is the input? Feel free
to
attach a zip of the input.
In most cases Minify can combine the js/css before minifying, but you should
try
disabling this:
http://code.google.com/p/minify/source/browse/tags/release_2.1.3/min/lib/
Minify.php#443
Alter line 443 of Minify.php so that the condition always fails:
if (0 && Minify_Source::haveNoMinifyPrefs(self::$_controller->sources)) {
Does this offer an improvement?
Original comment by mrclay....@gmail.com
on 6 May 2010 at 11:24
"..Is JSMin slower before or after the fix is applied.." before this fix i got
fast
but incomplete response js/css was cut off. any try result with different cuts.
After that fix the response are always complete but took several minutes.
(sorry) my minify version is 2.1.3
your fix : "if (0 &&
Minify_Source::haveNoMinifyPrefs(self::$_controller->sources))
{" speed it up but never less 15 seconds.
any idea? is it a matter of gzip?
Original comment by i...@medic-world.de
on 6 May 2010 at 1:35
The patch only changes a couple strlen calls so I don't see why it's crawling.
You'd
have to insert benchmarking code to figure this out I'm afraid.
Original comment by mrclay....@gmail.com
on 6 May 2010 at 1:52
our request looks like this:
/min/?f=templates/bmgtest/javascript/jquery-1.3.2.min.js,templates/bmgtest/javas
cript/jquery.flash.js,templates/bmgtest/javascript/jquery.form.js,templates/bmgt
est/javascript/jquery.history.js,templates/bmgtest/javascript/jquery.autocomplet
e.v1.2.js,templates/bmgtest/javascript/jquery.dependClass.js,templates/bmgtest/j
avascript/jquery.slider-min.js,templates/bmgtest/javascript/jquery.json-2.2.min.
js,templates/bmgtest/javascript/search.v1.2.js,templates/bmgtest/javascript/jque
ry.scrollTo-1.4.2-min.js,templates/bmgtest/javascript/base64.js,templates/bmgtes
t/javascript/jquery.fancybox1.3.0.js,templates/bmgtest/javascript/jquery.mousewh
eel-3.0.2.js
i know that a lot :-) (already set the max script count to 20).
Original comment by i...@medic-world.de
on 6 May 2010 at 1:53
"...have to insert benchmarking code to figure this out I'm afraid." i'm not,
can you
give me a hint where i should set breakpoints? i will keep you informed
Original comment by i...@medic-world.de
on 6 May 2010 at 1:56
Best place I can imagine is before and after the calls to mb_strlen. So, in your
patched JSMin.php, before/after this line:
$this->inputLength = $is_mb_strlen ? mb_strlen($this->input, 'ASCII') :
strlen($this->input);
Original comment by mrclay....@gmail.com
on 6 May 2010 at 2:03
btw, sorry issue is only about js files. css works fine
Original comment by i...@medic-world.de
on 6 May 2010 at 2:03
here the min_unit_test/test_all.php output
PASS: Minify : 304 response (1 of 1 tests run so far have passed)
PASS: Minify : cache, and minifier classes aren't loaded for 304s (2 of 2 tests
run
so far have passed)
!FAIL: Minify : JS and Expires (1 of 3 tests run so far have failed)
PASS: Minify : Issue 73 (3 of 4 tests run so far have passed)
PASS: Minify : Issue 89 : bubbleCssImports (4 of 5 tests run so far have passed)
PASS: Minify : Issue 89 : detect invalid imports (5 of 6 tests run so far have
passed)
PASS: Minify : Issue 89 : don't warn about valid imports (6 of 7 tests run so
far
have passed)
PASS: Minify : CSS and Etag/Last-Modified (7 of 8 tests run so far have passed)
PASS: Minify_Build : single file path (8 of 9 tests run so far have passed)
PASS: Minify_Build : multiple file paths (9 of 10 tests run so far have passed)
PASS: Minify_Build : file path and a Minify_Source (10 of 11 tests run so far
have
passed)
PASS: Minify_Build : uri() with no querystring (11 of 12 tests run so far have
passed)
PASS: Minify_Build : uri() with existing querystring (12 of 13 tests run so far
have
passed)
PASS: Minify_Cache_APC : store (13 of 14 tests run so far have passed)
PASS: Minify_Cache_APC : getSize (14 of 15 tests run so far have passed)
PASS: Minify_Cache_APC : isValid (15 of 16 tests run so far have passed)
PASS: Minify_Cache_APC : display (16 of 17 tests run so far have passed)
PASS: Minify_Cache_APC : fetch (17 of 18 tests run so far have passed)
NOTE: Minify_Cache_File : path is set to: '/tmp'.
PASS: Minify_Cache_File : store (18 of 19 tests run so far have passed)
PASS: Minify_Cache_File : getSize (19 of 20 tests run so far have passed)
PASS: Minify_Cache_File : isValid (20 of 21 tests run so far have passed)
PASS: Minify_Cache_File : display (21 of 22 tests run so far have passed)
PASS: Minify_Cache_File : fetch (22 of 23 tests run so far have passed)
PASS: Minify_Cache_File : store w/ lock (23 of 24 tests run so far have passed)
PASS: Minify_Cache_File : getSize (24 of 25 tests run so far have passed)
PASS: Minify_Cache_File : isValid (25 of 26 tests run so far have passed)
PASS: Minify_Cache_File : display w/ lock (26 of 27 tests run so far have
passed)
PASS: Minify_Cache_File : fetch w/ lock (27 of 28 tests run so far have passed)
PASS: Minify_Cache_Memcache : store (28 of 29 tests run so far have passed)
PASS: Minify_Cache_Memcache : getSize (29 of 30 tests run so far have passed)
PASS: Minify_Cache_Memcache : isValid (30 of 31 tests run so far have passed)
PASS: Minify_Cache_Memcache : display (31 of 32 tests run so far have passed)
PASS: Minify_Cache_Memcache : fetch (32 of 33 tests run so far have passed)
PASS: Minify_CSS : subsilver (33 of 34 tests run so far have passed)
PASS: Minify_CSS : comments (34 of 35 tests run so far have passed)
PASS: Minify_CSS : unusual_strings (35 of 36 tests run so far have passed)
PASS: Minify_CSS : issue62 (36 of 37 tests run so far have passed)
PASS: Minify_CSS : selectors (37 of 38 tests run so far have passed)
PASS: Minify_CSS : paths_rewrite (38 of 39 tests run so far have passed)
PASS: Minify_CSS : hacks (39 of 40 tests run so far have passed)
PASS: Minify_CSS : vladmirated (40 of 41 tests run so far have passed)
PASS: Minify_CSS : paths_prepend (41 of 42 tests run so far have passed)
PASS: Minify_CSS : styles (42 of 43 tests run so far have passed)
PASS: Minify_CSS_UriRewriter (43 of 44 tests run so far have passed)
PASS: Minify_CSS_UriRewriter : Issue 99 (44 of 45 tests run so far have passed)
PASS: Minify_CommentPreserver (45 of 46 tests run so far have passed)
PASS: Minify_CommentPreserver (46 of 47 tests run so far have passed)
PASS: Minify_CommentPreserver (47 of 48 tests run so far have passed)
PASS: Minify_CommentPreserver (48 of 49 tests run so far have passed)
<br />
Strict Standards: mb_strpos() [<a
href='function.mb-strpos'>function.mb-strpos</a>]: It is not safe to rely on the
system's timezone settings. Please use the date.timezone setting, the TZ
environment
variable or the date_default_timezone_set() function. In case you used any of
those
methods and you are still getting this warning, you most likely misspelled the
timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in
/home/www/httpd/xtcReuter-Dev/htdocs/min/lib/JSMin.php on line 113<br />
<br />
Warning: mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]:
Empty delimiter in /home/www/httpd/xtcReuter-Dev/htdocs/min/lib/JSMin.php on
line 113<br />
PASS: Minify_HTML (49 of 50 tests run so far have passed)
<br />
Strict Standards: mb_strpos() [<a
href='function.mb-strpos'>function.mb-strpos</a>]: It is not safe to rely on the
system's timezone settings. Please use the date.timezone setting, the TZ
environment
variable or the date_default_timezone_set() function. In case you used any of
those
methods and you are still getting this warning, you most likely misspelled the
timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in
/home/www/httpd/xtcReuter-Dev/htdocs/min/lib/JSMin.php on line 113<br />
<br />
Warning: mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]:
Empty delimiter in /home/www/httpd/xtcReuter-Dev/htdocs/min/lib/JSMin.php on
line 113<br />
<br />
Strict Standards: mb_strpos() [<a
href='function.mb-strpos'>function.mb-strpos</a>]: It is not safe to rely on the
system's timezone settings. Please use the date.timezone setting, the TZ
environment
variable or the date_default_timezone_set() function. In case you used any of
those
methods and you are still getting this warning, you most likely misspelled the
timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in
/home/www/httpd/xtcReuter-Dev/htdocs/min/lib/JSMin.php on line 113<br />
<br />
Warning: mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]:
Empty delimiter in /home/www/httpd/xtcReuter-Dev/htdocs/min/lib/JSMin.php on
line 113<br />
PASS: Minify_HTML (50 of 51 tests run so far have passed)
PASS: ImportProcessor (51 of 52 tests run so far have passed)
PASS: ImportProcessor : included right files in right order (52 of 53 tests run
so
far have passed)
!FAIL: Minify_Lines (2 of 54 tests run so far have failed)
PASS: HTTP_Encoder : recognize "x-gzip" as gzip (53 of 55 tests run so far have
passed)
PASS: HTTP_Encoder : gzip w/ non-zero q (54 of 56 tests run so far have passed)
PASS: HTTP_Encoder : gzip w/ zero q (55 of 57 tests run so far have passed)
PASS: HTTP_Encoder : IE6 w/o "enhanced security" (56 of 58 tests run so far
have passed)
PASS: HTTP_Encoder : IE6 w/ "enhanced security" (57 of 59 tests run so far have
passed)
PASS: HTTP_Encoder : IE5.5 (58 of 60 tests run so far have passed)
PASS: HTTP_Encoder : Opera identifying as IE6 (59 of 61 tests run so far have
passed)
PASS: HTTP_Encoder : IE6 w/ "enhanced security" (60 of 62 tests run so far have
passed)
PASS: HTTP_Encoder : deflate : uncompress possible (61 of 63 tests run so far
have
passed)
!FAIL: HTTP_Encoder : deflate : compressed to 20.59% of original (3 of 64 tests
run
so far have failed)
!FAIL: HTTP_Encoder : gzip : uncompress possible (4 of 65 tests run so far have
failed)
!FAIL: HTTP_Encoder : gzip : compressed to 20.60% of original (5 of 66 tests
run so
far have failed)
PASS: HTTP_Encoder : compress : uncompress possible (62 of 67 tests run so far
have
passed)
!FAIL: HTTP_Encoder : compress : compressed to 20.71% of original (6 of 68
tests run
so far have failed)
PASS: HTTP_Encoder : Vary always sent (63 of 69 tests run so far have passed)
PASS: HTTP_ConditionalGet : client has valid If-Modified-Since (64 of 70 tests
run so
far have passed)
PASS: HTTP_ConditionalGet : client has valid If-Modified-Since with trailing
semicolon (65 of 71 tests run so far have passed)
PASS: HTTP_ConditionalGet : client has valid ETag (non-encoded version) (66 of
72
tests run so far have passed)
PASS: HTTP_ConditionalGet : client has valid ETag (gzip version) (67 of 73
tests run
so far have passed)
PASS: HTTP_ConditionalGet : no conditional get (68 of 74 tests run so far have
passed)
PASS: HTTP_ConditionalGet : client has invalid ETag (69 of 75 tests run so far
have
passed)
PASS: HTTP_ConditionalGet : client has invalid If-Modified-Since (70 of 76
tests run
so far have passed)
PASS: JSMin : Overall (71 of 77 tests run so far have passed)
<br />
Strict Standards: mb_strpos() [<a
href='function.mb-strpos'>function.mb-strpos</a>]: It is not safe to rely on the
system's timezone settings. Please use the date.timezone setting, the TZ
environment
variable or the date_default_timezone_set() function. In case you used any of
those
methods and you are still getting this warning, you most likely misspelled the
timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in
/home/www/httpd/xtcReuter-Dev/htdocs/min/lib/JSMin.php on line 113<br />
<br />
Warning: mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]:
Empty delimiter in /home/www/httpd/xtcReuter-Dev/htdocs/min/lib/JSMin.php on
line 113<br />
PASS: JSMin : Quotes in RegExp literals (Issue 74) (72 of 78 tests run so far
have
passed)
PASS: environment : DOCUMENT_ROOT should not end in trailing slash (73 of 79
tests
run so far have passed)
PASS: environment : DOCUMENT_ROOT should pass realpath() (74 of 80 tests run so
far
have passed)
PASS: environment : DOCUMENT_ROOT should contain this test file (75 of 81 tests
run
so far have passed)
!FAIL: environment : PHP/server does not auto-HTTP-encode content (7 of 82
tests run
so far have failed)
Original comment by i...@medic-world.de
on 10 May 2010 at 11:02
it seems like it is a matter of gzencode
Original comment by i...@medic-world.de
on 10 May 2010 at 2:06
Try placing mb_internal_encoding('8bit'); in min/config.php. In theory that
should
make the overloaded functions behave just like the regular ones.
The test_HTTP_Encoder.php file has a PHP gzdecode function which makes *tons* of
string function calls.
Original comment by mrclay....@gmail.com
on 10 May 2010 at 2:35
yes, thats what it seems like. the problems had just start with activating
mbstring.func_overload. We have had set gzip already without problems before.
When i
disable
Minify.php
281
// if (function_exists('gzencode')) {
// self::$_cache->store($cacheId . '.gz', gzencode($content,
self::$_options['encodeLevel']));
// }
it works fine. otherwise the non zipped cache file is cutted off.
Original comment by i...@medic-world.de
on 11 May 2010 at 6:52
You might try this for kicks in min/config.php:
$min_serveOptions['encodeOutput'] = false;
ob_start("ob_gzhandler");
You might have to comment out the line in Minify that sets Content-Length since
it
will be wrong a lot of times.
Original comment by mrclay....@gmail.com
on 12 May 2010 at 12:43
comment out the content length work.
But i wont this solution, i think i did a mistake.
- we had convertet ALL files even css and js to UTF8
- we had activate function overload in the zend-server and defined UTF8
- we just had copy&paste the changes from issue 132
this solution made a check if funtion overload is active ore not and user strlen
or mb_strlen($content, 'ASCII'). I think this not needed because the server
have do
decide if he use multibyte funtions or not. And if i set it manualy with
'ASCII' it
will make no sence in our case.
as i had reported, excluding the gzencode will work, so i have to find out
whats up
there.
i even thougt about Minify.php self::$_options['contentTypeCharset'] its
defined in
Base.php as UTF-8. does minify convert js and css to UTF8 if userfile stored as
ASCII?
Original comment by i...@medic-world.de
on 19 May 2010 at 7:37
http://code.google.com/p/minify/source/browse/branches/2.1.4/ has a lot of work
done
in this area. Everything is now well-tested under mbstring.func_overload, but I
don't
know if it's gonna help w/ gzencode.
BTW, mb_internal_encoding('8bit') before any string code seems to be the key
solution. It's faster than ASCII, too.
As for contentTypeCharset, this just determines what charset is sent in the
header.
Minify does no conversion, but, yes, ASCII *is* UTF-8, so it converts it by
labeling
it :)
Original comment by mrclay....@gmail.com
on 19 May 2010 at 1:14
i have tried 2.1.4 and it seems like i missunderstood the problem, looks like
there
was no issue about gzencode. 2.1.4 works like a charm. i love minify, thanks a
lot!
Original comment by i...@medic-world.de
on 21 May 2010 at 7:16
Original issue reported on code.google.com by
i...@medic-world.de
on 6 May 2010 at 10:42