Skip to content

Conversation

@rerobika
Copy link
Member

@rerobika rerobika commented Jan 30, 2019

Binary size reduction:

  • Intel: ~2.5KB (gcc-7.3)
  • Arm: ~1.2KB (arm-linux-gnueabi-gcc-7.3)

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu

@rerobika
Copy link
Member Author

Performance results:

Benchmark Perf (sec)
3d-cube.js 0.790 -> 0.788 : +0.224%
3d-raytrace.js 0.950 -> 0.954 : -0.359%
access-binary-trees.js 0.528 -> 0.528 : +0.106%
access-fannkuch.js 1.913 -> 1.914 : -0.056%
access-nbody.js 1.000 -> 0.999 : +0.054%
bitops-3bit-bits-in-byte.js 0.470 -> 0.471 : -0.156%
bitops-bits-in-byte.js 0.645 -> 0.646 : -0.150%
bitops-bitwise-and.js 0.890 -> 0.890 : -0.061%
bitops-nsieve-bits.js 1.128 -> 1.125 : +0.258%
controlflow-recursive.js 0.333 -> 0.332 : +0.549%
crypto-aes.js 0.814 -> 0.809 : +0.644%
crypto-md5.js 0.555 -> 0.556 : -0.098%
crypto-sha1.js 0.542 -> 0.543 : -0.077%
date-format-tofte.js 0.726 -> 0.725 : +0.044%
date-format-xparb.js 0.508 -> 0.513 : -1.076%
math-cordic.js 1.104 -> 1.110 : -0.493%
math-partial-sums.js 0.704 -> 0.701 : +0.372%
math-spectral-norm.js 0.464 -> 0.465 : -0.303%
string-base64.js 1.409 -> 1.368 : +2.886%
string-fasta.js 1.307 -> 1.302 : +0.387%
Geometric mean: +0.137%

Most of it is probably noise due to the new code layout.

Binary (bytes) 924f4bb c1ab183 Gain
size 132664 132664 0.000%
.text 115596 114404 +1.031%
.rodata 11256 11262 -0.053%
.bss 1575168 1575168 0.000%

@rerobika rerobika added binary size Affects binary size ecma builtins Related to ECMA built-in routines labels Jan 30, 2019
Copy link
Member

@zherczeg zherczeg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with minor fix.

@rerobika rerobika force-pushed the array_proto_dispatch branch from c1ab183 to 825ca39 Compare January 31, 2019 15:29
@rerobika
Copy link
Member Author

Note: #2640 must land first.

@LaszloLango
Copy link
Contributor

@rerobika I don't see how is this PR related to #2640. Could you explain it to me?

@rerobika
Copy link
Member Author

rerobika commented Feb 1, 2019

@LaszloLango #2640 Adds 4 new Array.prototype routines here, but currently it uses the general dispatcher. If it lands, this patch must be updated with these 4 functions custom dispatcher related bindings.

@LaszloLango
Copy link
Contributor

@rerobika as I see it can be done the other way as well.

@rerobika
Copy link
Member Author

rerobika commented Feb 1, 2019

Indeed, no matter what PR lands first, the other must be updated as well.

@rerobika rerobika force-pushed the array_proto_dispatch branch from 825ca39 to cec4788 Compare February 8, 2019 10:34
@rerobika
Copy link
Member Author

rerobika commented Feb 8, 2019

@LaszloLango I've updated the PR after #2640 has landed. Could you take an other look at it?

@LaszloLango
Copy link
Contributor

@rerobika, are measurement results the same after the rebase?

@rerobika
Copy link
Member Author

@LaszloLango Yes they are, these are the new results:

Binary (bytes) master(f22eea5) patch(cec4788) Gain
size 132664 132664 0 bytes
.text 115636 114444 -1192 bytes
.rodata 11256 11255 -1 bytes
.bss 1575168 1575168 0 bytes

Performance is still unchanged, mostly noise due to the new code layout.

Binary size gain:
 - Intel: ~2.5KB (gcc-7.3)
 - Arm: ~1.2KB (arm-linux-gnueabi-gcc-7.3)

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
@rerobika rerobika force-pushed the array_proto_dispatch branch from cec4788 to 050be98 Compare February 12, 2019 10:35
Copy link
Contributor

@LaszloLango LaszloLango left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@zherczeg zherczeg merged commit ed06626 into jerryscript-project:master Feb 13, 2019
@rerobika rerobika deleted the array_proto_dispatch branch February 28, 2019 11:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

binary size Affects binary size ecma builtins Related to ECMA built-in routines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants