[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/vlf 9271f68 256/310: Add function to linearly search be
From: |
Stefan Monnier |
Subject: |
[elpa] externals/vlf 9271f68 256/310: Add function to linearly search best batch size according to existing |
Date: |
Sat, 28 Nov 2020 00:33:27 -0500 (EST) |
branch: externals/vlf
commit 9271f68c05fb1566c1cdbd0d279ced9beaffb431
Author: Andrey Kotlarski <m00naticus@gmail.com>
Commit: Andrey Kotlarski <m00naticus@gmail.com>
Add function to linearly search best batch size according to existing
measurements and offer it when interactively changing batch size.
---
vlf-tune.el | 15 +++++++++++++++
vlf.el | 7 ++++++-
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/vlf-tune.el b/vlf-tune.el
index ba7703b..4868e2c 100644
--- a/vlf-tune.el
+++ b/vlf-tune.el
@@ -345,6 +345,21 @@ Suitable for multiple batch operations."
(vlf-tune-conservative types (/ max-idx 2))
(vlf-tune-binary types 0 max-idx)))))))
+(defun vlf-tune-get-optimal (types)
+ "Get best batch size according to existing measurements over TYPES."
+ (let ((max-idx (1- (/ (min vlf-tune-max (/ (1+ vlf-file-size) 2))
+ vlf-tune-step)))
+ (best-idx 0)
+ (best-bps 0)
+ (idx 0))
+ (while (< idx max-idx)
+ (let ((bps (vlf-tune-score types idx t)))
+ (and bps (< best-bps bps)
+ (setq best-idx idx
+ best-bps bps)))
+ (setq idx (1+ idx)))
+ (* (1+ best-idx) vlf-tune-step)))
+
(provide 'vlf-tune)
;;; vlf-tune.el ends here
diff --git a/vlf.el b/vlf.el
index 0aae3ab..fad68b3 100644
--- a/vlf.el
+++ b/vlf.el
@@ -259,7 +259,12 @@ with the prefix argument DECREASE it is halved."
(defun vlf-set-batch-size (size)
"Set batch to SIZE bytes and update chunk."
- (interactive (list (read-number "Size in bytes: " vlf-batch-size)))
+ (interactive
+ (list (read-number "Size in bytes: "
+ (vlf-tune-get-optimal
+ (if (derived-mode-p 'hexl-mode)
+ '(:hexl :dehexlify :insert :encode)
+ '(:insert :encode))))))
(setq vlf-batch-size size)
(vlf-move-to-batch vlf-start-pos))
- [elpa] externals/vlf 11c7af4 253/310: Change handling of measurement values to support approximations., (continued)
- [elpa] externals/vlf 11c7af4 253/310: Change handling of measurement values to support approximations., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 35ede94 255/310: Restore batch size after save with adjustment., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf ff06509 261/310: Document tune functionality., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 1c961f4 285/310: Fix whole file reload in read-only buffer on vlf-mode exit., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf f4526a1 287/310: Forbid short-cutting in line search., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf fd90b3a 295/310: Use xdigit regex class in vlf-hexl-adjust-addresses., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf df677c1 302/310: Issue 35: make mode-line batch indicators more accurate, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf a568d2d 307/310: packages/vlf: Update copyright dates and bump version., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 0ecb40a 124/310: Keep as much editing as possible when moving to intersecting chunk., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 86223ed 234/310: Fixes to hexl-mode integration., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 9271f68 256/310: Add function to linearly search best batch size according to existing,
Stefan Monnier <=
- [elpa] externals/vlf 0d2c096 258/310: Restore batch size and hexl mode in case of failed search or occur., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf b918791 265/310: Improve vlf performance with hexl-mode. Align batches to hexl-bits, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 2e9ff70 238/310: Enlarge default batch size but keep is small on initial load of remote, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf d85f3d4 246/310: Fix access to uninitialized measurements when tuning., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf ca56498 259/310: Change vlf-tune-get-optimal to optimize on total time of primitive, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 51d95ec 152/310: Add command to display batch starting from point., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 46e39a0 153/310: Version 1.0., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf d1af56d 167/310: Fix opening of files for GNU Emacs 23., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 8ab1c6a 136/310: Disable undo and mark buffer as not modified when invoking search or, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf bb482f0 173/310: Fix file size determination for symbolic links., Stefan Monnier, 2020/11/28