More efficiently create some vectors
And instrument the inferior memory after creating the gds-inferior-packages vector.
This commit is contained in:
parent
ca5f0036f3
commit
ebeb4212ff
1 changed files with 28 additions and 11 deletions
|
|
@ -541,8 +541,13 @@
|
||||||
(/ (assoc-ref stats 'heap-size)
|
(/ (assoc-ref stats 'heap-size)
|
||||||
(expt 2. 20)))))
|
(expt 2. 20)))))
|
||||||
|
|
||||||
(let ((vec (list->vector
|
(let ((vec (make-vector ,count)))
|
||||||
(iota ,count ,start-index))))
|
(vector-fold
|
||||||
|
(lambda (i index _)
|
||||||
|
(vector-set! vec i index)
|
||||||
|
(1+ index))
|
||||||
|
,start-index
|
||||||
|
vec)
|
||||||
(vector-map!
|
(vector-map!
|
||||||
(lambda (_ index)
|
(lambda (_ index)
|
||||||
(define package (vector-ref gds-inferior-packages index))
|
(define package (vector-ref gds-inferior-packages index))
|
||||||
|
|
@ -736,18 +741,30 @@
|
||||||
|
|
||||||
(inferior-eval
|
(inferior-eval
|
||||||
`(define gds-inferior-packages
|
`(define gds-inferior-packages
|
||||||
(make-vector ,deduplicated-packages-length))
|
(vector ,@(map inferior-package-id deduplicated-packages)))
|
||||||
|
inf)
|
||||||
|
(inferior-eval
|
||||||
|
'(begin
|
||||||
|
(vector-map!
|
||||||
|
(lambda (_ id)
|
||||||
|
(or (hashv-ref %package-table id)
|
||||||
|
(error "missing package id")))
|
||||||
|
gds-inferior-packages)
|
||||||
|
#t)
|
||||||
inf)
|
inf)
|
||||||
|
|
||||||
(inferior-eval
|
(inferior-eval
|
||||||
`(for-each
|
'(let ((stats (gc-stats)))
|
||||||
(lambda (index id)
|
(simple-format
|
||||||
(vector-set! gds-inferior-packages
|
(current-error-port)
|
||||||
index
|
"post gds-inferior-packages inferior heap: ~a MiB used (~a MiB heap)~%"
|
||||||
(or (hashv-ref %package-table id)
|
(round
|
||||||
(error "missing package id"))))
|
(/ (- (assoc-ref stats 'heap-size)
|
||||||
(iota ,deduplicated-packages-length)
|
(assoc-ref stats 'heap-free-size))
|
||||||
(list ,@(map inferior-package-id deduplicated-packages)))
|
(expt 2. 20)))
|
||||||
|
(round
|
||||||
|
(/ (assoc-ref stats 'heap-size)
|
||||||
|
(expt 2. 20)))))
|
||||||
inf)
|
inf)
|
||||||
|
|
||||||
(values (list->vector deduplicated-packages)
|
(values (list->vector deduplicated-packages)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue