Clojure

Remove reflection in pprint and cl-format to improve performance

Details

  • Type: Enhancement Enhancement
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Completed
  • Affects Version/s: Release 1.5
  • Fix Version/s: Release 1.8
  • Component/s: None
  • Labels:
  • Patch:
    Code
  • Approval:
    Ok

Description

There are many occurrences of reflection in the pprint implementation.

By eliminating all of them, I ran one benchmark of pprint'ing a Clojure map that resulted in a 300 Kbyte output. After eliminating reflection, the elapsed time to pprint was reduced by 18% (about 14.0 sec down to about 11.5 sec) on a recent model MacBook Pro.

Patch: clj-1259-2.patch
Screened by: Alex Miller

  1. clj-1259-1.txt
    09/Sep/13 11:36 PM
    11 kB
    Andy Fingerhut
  2. clj-1259-2.patch
    09/Oct/15 8:59 AM
    20 kB
    Alex Miller

Activity

Andy Fingerhut made changes -
Field Original Value New Value
Attachment clj-1259-1.txt [ 12250 ]
Andy Fingerhut made changes -
Patch Code [ 10001 ]
Alex Miller made changes -
Labels performance print
Alex Miller made changes -
Approval Triaged [ 10120 ]
Alex Miller made changes -
Priority Minor [ 4 ] Major [ 3 ]
Alex Miller made changes -
Labels performance print ft performance print
Alex Miller made changes -
Description There are many occurrences of reflection in the pprint implementation.

By eliminating all of them, I ran one benchmark of pprint'ing a Clojure map that resulted in a 300 Kbyte output. After eliminating reflection, the elapsed time to pprint was reduced by 18% (about 14.0 sec down to about 11.5 sec) on a recent model MacBook Pro.
There are many occurrences of reflection in the pprint implementation.

By eliminating all of them, I ran one benchmark of pprint'ing a Clojure map that resulted in a 300 Kbyte output. After eliminating reflection, the elapsed time to pprint was reduced by 18% (about 14.0 sec down to about 11.5 sec) on a recent model MacBook Pro.

*Patch:* clj-1277-1.txt
*Screened by:* Alex Miller
Alex Miller made changes -
Description There are many occurrences of reflection in the pprint implementation.

By eliminating all of them, I ran one benchmark of pprint'ing a Clojure map that resulted in a 300 Kbyte output. After eliminating reflection, the elapsed time to pprint was reduced by 18% (about 14.0 sec down to about 11.5 sec) on a recent model MacBook Pro.

*Patch:* clj-1277-1.txt
*Screened by:* Alex Miller
There are many occurrences of reflection in the pprint implementation.

By eliminating all of them, I ran one benchmark of pprint'ing a Clojure map that resulted in a 300 Kbyte output. After eliminating reflection, the elapsed time to pprint was reduced by 18% (about 14.0 sec down to about 11.5 sec) on a recent model MacBook Pro.

*Patch:* clj-1259-1.txt
*Screened by:* Alex Miller
Rich Hickey made changes -
Approval Triaged [ 10120 ] Vetted [ 10003 ]
Fix Version/s Release 1.8 [ 10254 ]
Alex Miller made changes -
Approval Vetted [ 10003 ] Screened [ 10004 ]
Description There are many occurrences of reflection in the pprint implementation.

By eliminating all of them, I ran one benchmark of pprint'ing a Clojure map that resulted in a 300 Kbyte output. After eliminating reflection, the elapsed time to pprint was reduced by 18% (about 14.0 sec down to about 11.5 sec) on a recent model MacBook Pro.

*Patch:* clj-1259-1.txt
*Screened by:* Alex Miller
There are many occurrences of reflection in the pprint implementation.

By eliminating all of them, I ran one benchmark of pprint'ing a Clojure map that resulted in a 300 Kbyte output. After eliminating reflection, the elapsed time to pprint was reduced by 18% (about 14.0 sec down to about 11.5 sec) on a recent model MacBook Pro.

*Patch:* clj-1259-2.patch
*Screened by:* Alex Miller
Attachment clj-1259-2.patch [ 15204 ]
Summary Speed up pprint Remove reflection in pprint and cl-format to improve performance
Michael Blume made changes -
Attachment clj-1259-v3.patch [ 15213 ]
Rich Hickey made changes -
Approval Screened [ 10004 ] Ok [ 10007 ]
Alex Miller made changes -
Attachment clj-1259-v3.patch [ 15213 ]
Stuart Halloway made changes -
Resolution Completed [ 1 ]
Status Open [ 1 ] Closed [ 6 ]

People

Vote (1)
Watch (3)

Dates

  • Created:
    Updated:
    Resolved: