Comments (4)
@rejeep I rediscovered this in my notes, came here to repost it, and found that I already had. :) Here's another benchmark using bench-multi
:
(defun f--collect-entries--tb (path recursive)
(with-temp-buffer
(let (result
(entries
(-reject
(lambda (file)
(or
(equal (f-filename file) ".")
(equal (f-filename file) "..")))
(directory-files path t))))
(cond (recursive
(-map
(lambda (entry)
(if (f-file? entry)
(setq result (cons entry result))
(when (f-directory? entry)
(setq result (cons entry result))
(setq result (append result (f--collect-entries entry recursive))))))
entries))
(t (setq result entries)))
result)))
#+BEGIN_SRC el
(bench-multi :times 100
:ensure-equal t
:forms (("without temp buffer" (f--collect-entries "~/.emacs.d" nil))
("with temp buffer" (f--collect-entries--tb "~/.emacs.d" nil))))
#+END_SRC
Form | x faster than next | Total runtime | # of GCs | Total GC runtime |
---|---|---|---|---|
with temp buffer | 1.66 | 0.087498083 | 0 | 0.0 |
without temp buffer | slowest | 0.14550272800000003 | 0 | 0.0 |
from f.el.
Hi, I can’t reproduce these results, in fact using a temporary buffer makes the function slower. This is what I get when I execute the code you shared in your first comment:
without temp buffer | 0.031098385 | 0 | 0.0 |
with temp buffer | 0.033553346 | 0 | 0.0 |
Can you still reproduce your results?
from f.el.
Can you still reproduce your results?
I don't know, that was nearly four years ago, and Emacs has had a few releases since then. What version did you test on? Were you using emacs -q
?
from f.el.
from f.el.
Related Issues (20)
- f-join not working as expected HOT 2
- [Feature request] `f-newer-p` and `f-older-p` HOT 1
- f-mkdir returns nil HOT 7
- [feature-request + contribution] recursive f-mkdir HOT 3
- [Bug]: f-shortdoc.el:31:1:Error: Cannot open load file: No such file or directory, shortdoc HOT 13
- Loading f-shortdoc slows down the loading process HOT 2
- [Help]: Faster way to search for directories recursively HOT 1
- [Bug]: Github Action broken HOT 2
- [Bug]: Symbol's function definition is void: define-short-documentation-group HOT 6
- [Bug]: Doesn't load `shortdoc` with Emacs 29, causing `(void-function define-short-documentation-group)` on startup with doom-emacs HOT 1
- [Bug]: shortdoct does not get required under emacs verstion 29.0.50 with fshortdoc version 0.1.0 HOT 1
- [Bug]: f.el no longer byte-compiles under Emacs 24.5 HOT 2
- [Bug]: f-descendant and others give wrong results on dirs that share a prefix. HOT 2
- [Bug]: `(f-join "/" "foo" "/")` => "/" HOT 8
- [Bug]: "Cannot open load file" "No such file or directory" "f-shortdoc" HOT 2
- [Feature Request]: please make a new release HOT 1
- Remaining file vs directory issues
- f requires dash 2.2 but that does not yet exist HOT 2
- Thoughts on accepting a PR for f-contract HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from f.el.