profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/milkypostman/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Donald Curtis milkypostman Madison, WI

melpa/melpa 2212

Recipes and build machinery for the biggest Emacs package repo

milkypostman/dotemacs 44

.emacs.d

melpa/package-build 16

Tools for assembling a package archive

milkypostman/ArchiveMail 9

Plugin for Apple Mail.app

milkypostman/base16-emacs 4

Base16 for Emacs

milkypostman/emacs-color-theme-solarized 3

Emacs highlighting using Ethan Schoonover’s Solarized color scheme

milkypostman/emacs-starter-kit 1

Because the Emacs defaults are not so great sometimes.

milkypostman/epkgs 1

Metadata of packages mirrored on the Emacsmirror

fork purcell/hdf4

Official HDF4 Library Repository

fork in 2 days

push eventmelpa/package-build

Jonas Bernoulli

commit sha 41374432a1f1846a5d452dd95a53351bd4eacd13

Fix indentation

view details

push time in 3 days

startedmilkypostman/vim-togglelist

started time in 3 days

startedevanw/esbuild

started time in 7 days

startedgsoft-inc/craco

started time in 7 days

startedpradel/create-react-app-esbuild

started time in 7 days

startedjuusaw/ts-to-io

started time in 10 days

startedmilkypostman/powerline

started time in 15 days

fork purcell/zprint-format

emacs package to reformat Clojure code using zprint

fork in 17 days

startedAsabeneh/30-Days-Of-JavaScript

started time in 17 days

startedmilkypostman/powerline

started time in 17 days

issue closedmilkypostman/powerline

Emacs 26 pixel-scroll-mode + powerline = insane amount of GCs

On Emacs 26, I have pixel-scroll-mode turned on and set gc-cons-threshold to 30mb, I then scrolled on my 1150-line long .emacs from top to bottom a couple of times. This is the memory profiling result:

- command-execute                                         551,621,177  95%
 - call-interactively                                     551,603,225  95%
  - apply                                                 551,603,225  95%
   - call-interactively@ido-cr+-record-current-command    551,595,833  95%
    - apply                                               551,595,833  95%
     - #<subr call-interactively>                         551,585,273  95%
      - funcall-interactively                             551,583,161  95%
       - mwheel-scroll                                    510,013,781  88%
        - pixel-scroll-up                                 330,574,847  57%
         - pixel-scroll-pixel-up                          195,280,496  33%
          - pixel--whistlestop-line-up                    115,137,483  19%
           - scroll-up                                     38,770,616   6%
            - eval                                         38,770,616   6%
             - let*                                        38,770,616   6%
              - list                                       24,430,275   4%
               + when                                       6,988,648   1%
               + powerline-buffer-id                        4,571,096   0%
               + funcall                                    4,225,848   0%
               + powerline-raw                              2,841,916   0%
               + powerline-major-mode                       2,603,512   0%
               + powerline-minor-modes                      2,388,976   0%
                 powerline-fill                               141,168   0%
                 unless                                        22,176   0%
              + concat                                      8,325,177   1%
                intern                                         75,984   0%
           + pixel--whistlestop-pixel-up                   37,533,682   6%
           - pixel-line-height                             36,621,101   6%
            - pixel-visual-line-height                     36,621,101   6%
             - pixel-visible-pos-in-window                 36,471,149   6%
              - pos-visible-in-window-p                    35,363,645   6%
               - eval                                      35,363,645   6%
                - let*                                     35,363,645   6%
                 - list                                    26,363,801   4%
                  + when                                    6,894,784   1%
                  + funcall                                 6,317,217   1%
                  + powerline-buffer-id                     4,610,984   0%
                  + powerline-raw                           2,778,732   0%
                  + powerline-major-mode                    2,553,900   0%
                  + powerline-minor-modes                   2,420,816   0%
                    powerline-fill                            131,776   0%
                    unless                                     27,456   0%
                 + concat                                   5,034,600   0%
                   intern                                      21,812   0%
                end-of-visual-line                            231,264   0%
              + window-inside-pixel-edges                     194,304   0%
                beginning-of-visual-line                      173,184   0%
                delete-dups                                     2,120   0%
           + sit-for                                        1,929,796   0%
          + pixel-line-height                              80,138,431  13%
         + pixel-point-at-top-p                            81,620,290  14%
         + pixel-line-height                               39,620,496   6%
         + scroll-up                                       13,330,869   2%
           pixel-scroll-in-rush-p                               1,064   0%
        + pixel-scroll-down                               174,967,270  30%
        + run-with-timer                                       67,584   0%
          #<compiled 0x400dc823>                               20,260   0%
       + amx                                               41,568,906   7%
       + beginning-of-buffer                                      474   0%
+ redisplay_internal (C function)                          22,065,920   3%
+ winner-save-old-configurations                            1,079,584   0%
+ timer-event-handler                                         850,624   0%
+ purpose-x-code1-debounced-update-changed                    507,936   0%
+ jit-lock-function                                           172,574   0%
+ ibuffer-auto-update-changed                                  76,714   0%
+ sp--save-pre-command-state                                   75,032   0%
+ ...                                                          18,504   0%
+ undo-auto--add-boundary                                       6,336   0%
+ eldoc-schedule-timer                                          3,168   0%
+ global-eldoc-mode-check-buffers                               1,056   0%
+ global-company-mode-check-buffers                             1,056   0%
+ global-move-dup-mode-check-buffers                            1,056   0%
+ show-smartparens-global-mode-check-buffers                    1,056   0%
+ blink-cursor-end                                              1,056   0%

This amount of memory consumption causes GC too frequently, and the GC pauses amounts of 11% of the time the CPU spends on.

+ command-execute                                                3604  86%
- ...                                                             479  11%
   Automatic GC                                                   479  11%
+ redisplay_internal (C function)                                  47   1%
+ timer-event-handler                                              18   0%
+ ibuffer-auto-update-changed                                       2   0%
+ sp--save-pre-command-state                                        1   0%
+ delete-selection-pre-hook                                         1   0%

This results on quite a bad UX since I can't scroll a couple of pages without see stutters for a few seconds.

closed time in 22 days

wyuenho

startedmilkypostman/powerline

started time in 22 days

startedmilkypostman/powerline

started time in 22 days

PR opened milkypostman/powerline

Avoid changing match data

Just keeping good elisp hygiene

+3 -2

0 comment

1 changed file

pr created time in 23 days

fork wyuenho/powerline

emacs powerline

fork in 23 days

created repositorypurcell/replit-j

Repl.it support for jlang

created time in 23 days

startedbradleyfalzon/ghinstallation

started time in 23 days

Pull request review commentmilkypostman/powerline

Fix #187 replace circular list to enable native compilation

 RED, GREEN and BLUE should be between 0.0 and 1.0, inclusive." (defun pl/pattern (lst)   "Turn LST into an infinite pattern."   (when lst-    (let ((pattern (cl-copy-list lst)))-      (setcdr (last pattern) pattern))))+    (let ((r (make-ring (length lst))))

Didn't even know it existed lol

wyuenho

comment created time in 24 days

startedpwhite2/simple-tab-sorter

started time in 24 days

pull request commentmilkypostman/powerline

Fix #187 replace circular list to enable native compilation

@milkypostman mind taking a look? Should be relatively straightforward.

wyuenho

comment created time in 25 days

startedgoogle/cel-spec

started time in 25 days

startedgoogle/cel-go

started time in 25 days

startedshurcooL/githubv4

started time in 25 days

startedmilkypostman/powerline

started time in a month

fork wyuenho/powerline

emacs powerline

fork in a month

startedGoogleCloudPlatform/berglas

started time in a month

fork purcell/slurm.el

Emacs extension to interact with the SLURM jobs scheduler

fork in a month

startedmilkypostman/powerline

started time in a month