@Soren I recommend enabling performance instrumentation and checking to see 
which filter runs are the culprits.

https://tiddlywiki.com/#%24%3A%2Fconfig%2FPerformance%2FInstrumentation:%24%3A%2Fconfig%2FPerformance%2FInstrumentation%20%5B%5BPerformance%20Instrumentation%5D%5D

Note that you need to enable it by setting the config tiddler to "yes", 
then save and reload.

Also suggest posting a public wiki where the issue (and the condition 
filters) can be seen to facilitate debugging.
On Tuesday, July 20, 2021 at 4:05:15 PM UTC+2 Soren Bjornstad wrote:

> Important note, the condition fields aren't defined in the current public 
> version, so you'd have to add them in to get a working test.
>
> On Tuesday, July 20, 2021 at 9:03:42 AM UTC-5 Soren Bjornstad wrote:
>
>> Tones,
>>
>> :filter was my first thought, but I couldn't figure out how the data 
>> would flow through it. Perhaps I was missing something, looking forward to 
>> seeing your version.
>>
>> If it helps to see the context, have a peek at 
>> https://zettelkasten.sorenbjornstad.com/#%24%3A%2Fsib%2Frefexplorer%2FReferenceExplorer.
>>  
>> The snippet above (or a replacement) would go inside the ref-explorer macro 
>> definition.
>>
>>
>> On Tuesday, July 20, 2021 at 8:07:09 AM UTC-5 TW Tones wrote:
>>
>>> Soren,
>>>
>>> Its late here but I have done something similar in the past without a 
>>> performance hit, and will try and create a solution tomorrow, However I 
>>> think the answer best answer may be through the use of a filter run as in 
>>> 5.3.23+ however I am sure I succeeded in something similar a few versions 
>>> ago.
>>>
>>> No need for reduce and accumulators I think.
>>>
>>> Regards
>>> Tones
>>>
>>> On Tuesday, 20 July 2021 at 13:09:18 UTC+10 Soren Bjornstad wrote:
>>>
>>>> Hi all,
>>>>
>>>> I want to determine what tabs of the Reference Explorer in my 
>>>> Zettelkasten to show on a template, such that if there aren't any results 
>>>> on that tab, the tab doesn't appear at all. The results of the tab are 
>>>> produced based on a filter (of course), so I figured I would also 
>>>> determine 
>>>> whether the tab appears by running a filter. The filter is stored in a 
>>>> field in the tab tiddler.
>>>>
>>>> That is, I have a series of tiddlers with a certain tag (say *Tab*), 
>>>> and each of these tiddlers contains a filter in some field (say 
>>>> *condition*). For each Tiddler tagged Tab, if and only if the filter 
>>>> Tiddler!!condition, run with the current tiddler as input, has more than 
>>>> zero results, I want to display the tab.
>>>>
>>>> I came up with the following:
>>>>
>>>> <$set name="tabList" value={{{ [tag[Tab]] 
>>>> :reduce[<storyTiddler>subfilter{!!condition}then<currentTiddler>addprefix[ 
>>>> ]addprefix<accumulator>] }}}>
>>>>     <$macrocall $name="tabs" tabsList=<<tabList>>/>
>>>> </$set>
>>>>
>>>> This produces the correct result (well, as long as there are no spaces 
>>>> in the titles of the tiddlers tagged *Tab*; I'm OK assuming that since 
>>>> there indeed aren't any). The problem is that it is horrendously slow to 
>>>> run all these filters. On my dev machine it is tolerable, but this is a 
>>>> machine specced for serious processing power. On my MacBook Air it now 
>>>> takes 1–2 seconds to open a new tiddler, even without anything currently 
>>>> open!
>>>>
>>>> Probably I am just asking TW to do too much on the fly here, but before 
>>>> I start rethinking the project too hard, can anyone think of obvious 
>>>> optimizations I might be missing here? The filters involved are moderately 
>>>> complex (the basic pattern for each is to gather together links[], 
>>>> backlinks[], and tagging[] for the story tiddler, then filter some things 
>>>> out of that using + and !*operator*[]'s).
>>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/591dd4e2-d6e5-4b77-8be6-5e95588e3e95n%40googlegroups.com.

Reply via email to