Skip to content

Commit 061da6a

Browse files
committed
v.vmod: ease showing the content of mcache.cache after all the cached mod file lookups are done
1 parent 504d34a commit 061da6a

2 files changed

Lines changed: 21 additions & 11 deletions

File tree

‎vlib/v/builder/builder.v‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ pub fn (mut b Builder) middle_stages() ! {
133133
if b.pref.dump_defines != '' {
134134
b.dump_defines()
135135
}
136+
mut mcache := vmod.get_cache()
137+
mcache.debug()
136138
b.print_warnings_and_errors()
137139
if b.checker.should_abort {
138140
return error('too many errors/warnings/notices')

‎vlib/v/vmod/vmod.v‎

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,24 +44,27 @@ pub struct ModFileCacher {
4444
mut:
4545
cache map[string]ModFileAndFolder
4646
// folder_files caches os.ls(key)
47-
folder_files map[string][]string
47+
folder_files map[string][]string
48+
hits int
49+
misses int
50+
get_files_hits int
51+
get_files_misses int
4852
}
4953

5054
pub fn new_mod_file_cacher() &ModFileCacher {
5155
return &ModFileCacher{}
5256
}
5357

58+
@[if debug_mod_file_cacher ?]
5459
pub fn (mcache &ModFileCacher) debug() {
55-
$if debug {
56-
eprintln('ModFileCacher DUMP:')
57-
eprintln(' ModFileCacher.cache:')
58-
for k, v in mcache.cache {
59-
eprintln(' K: ${k:-32s} | V: "${v.vmod_file:32s}" | "${v.vmod_folder:32s}" ')
60-
}
61-
eprintln(' ModFileCacher.folder_files:')
62-
for k, v in mcache.folder_files {
63-
eprintln(' K: ${k:-32s} | V: ${v.str()}')
64-
}
60+
eprintln('ModFileCacher hits: ${mcache.hits}, misses: ${mcache.misses} | get_files_hits: ${mcache.get_files_hits} | get_files_misses: ${mcache.get_files_misses}')
61+
eprintln(' ModFileCacher.cache.len: ${mcache.cache.len}')
62+
for k, v in mcache.cache {
63+
eprintln(' K: ${k:-42s} | v.mod: ${v.vmod_file:-42s} | folder: `${v.vmod_folder}`')
64+
}
65+
eprintln(' ModFileCacher.folder_files:')
66+
for k, v in mcache.folder_files {
67+
eprintln(' K: ${k:-42s} | folder_files: ${v}')
6568
}
6669
}
6770

@@ -72,12 +75,14 @@ pub fn (mut mcache ModFileCacher) get_by_file(vfile string) ModFileAndFolder {
7275
pub fn (mut mcache ModFileCacher) get_by_folder(vfolder string) ModFileAndFolder {
7376
mfolder := os.real_path(vfolder)
7477
if mfolder in mcache.cache {
78+
mcache.hits++
7579
return mcache.cache[mfolder]
7680
}
7781
traversed_folders, res := mcache.traverse(mfolder)
7882
for tfolder in traversed_folders {
7983
mcache.add(tfolder, res)
8084
}
85+
mcache.misses++
8186
return res
8287
}
8388

@@ -97,6 +102,7 @@ fn (mut mcache ModFileCacher) traverse(mfolder string) ([]string, ModFileAndFold
97102
break
98103
}
99104
if cfolder in mcache.cache {
105+
mcache.hits++
100106
res := mcache.cache[cfolder]
101107
if res.vmod_file.len == 0 {
102108
mcache.mark_folders_as_vmod_free(folders_so_far)
@@ -154,8 +160,10 @@ fn (mcache &ModFileCacher) check_for_stop(files []string) bool {
154160

155161
fn (mut mcache ModFileCacher) get_files(cfolder string) []string {
156162
if cfolder in mcache.folder_files {
163+
mcache.get_files_hits++
157164
return mcache.folder_files[cfolder]
158165
}
166+
mcache.get_files_misses++
159167
mut files := []string{}
160168
if os.exists(cfolder) && os.is_dir(cfolder) {
161169
if listing := os.ls(cfolder) {

0 commit comments

Comments
 (0)