Closed Bug 698407 Opened 14 years ago Closed 14 years ago

Performance degradation during string concatenation

Categories

(Tamarin Graveyard :: Virtual Machine, defect)

x86_64
macOS
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: brbaker, Assigned: virgilp)

References

Details

Attachments

(1 file, 1 obsolete file)

Attached file simple testcase (obsolete) —
Performance degradation during verification. cd performance ./runtests.py language/string/typed/split.as With the float patch queue this takes about 5 minutes to run, while the tamarin-redux repo runs in about 300ms. Actually this is pretty interesting, the code reports that it only takes 300ms to actually run, but if you use >$ time $AVM test.abc you can see that it takes about 5 minutes to run. Is this unaccounted for time in the verifier or codegen? tamarin: >$ avmshell test.abc 305 float: >$ time avmshell test.abc 308 real 5m11.250s user 2m2.796s sys 3m8.434s
This also happens with -Dinterp on the float branch (OS X 64bit release ) >$ time avmshell -Dinterp test.abc 286 real 5m10.118s user 2m1.130s sys 3m8.967s
Issue is not during verification as -Dverifyonly runs quickly, same as tamarin-redux using release-debugger builds. Title of bug needs to be updated once somebody knows where all of the time is going.
Attached file simple testcase
testcase narrowed down to the string concatenation, I should have taken another second to look at the code the first time
Attachment #570679 - Attachment is obsolete: true
Summary: Performance degradation during verification → Performance degradation during string concatenation
(In reply to Brent Baker from comment #3) > Created attachment 570701 [details] > simple testcase > > testcase narrowed down to the string concatenation, I should have taken > another second to look at the code the first time GC cycles are completely different between tamarin and the float queue for this code: Tamarin: gccount=4 incremental-marks=34 peak-occupancy: blocks-heap-allocated=7134 blocks-gc-allocated=6427 blocks-private=3665 Float: gccount=9477 incremental-marks=9500 peak-occupancy: blocks-heap-allocated=38143 blocks-gc-allocated=24823 blocks-private=15095
Compiling the shell with float disabled brings back the lost performance. Recompile builtins (modify core/builtin.py to set VMCFG_FLOAT=false) and compile with --disable-swf16
Note: interpreter issue (works fine with -Ojit in new VM; works slow with -Dinterp in new VM, but fast with -Dinterp in old VM). Note2: I can't for the life of me figure out why this would happen. It makes no sense. Oh well, maybe tomorrow...
fixed in changeset 322:544cc0e3be9c
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Verified fixed in changeset 324:ba70538d70db
Status: RESOLVED → VERIFIED
Flags: in-testsuite+
Flags: flashplayer-triage+
Flags: flashplayer-qrb+
Flags: flashplayer-bug-
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: