-
-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] How to improve the loading speed? #465
Comments
Hello @Dean-Corso We think we understand what you mean and try to explain the behavior and how to improve it. You can find the code at menu.cs To display a menu we need the contents of the folder. We then find out whether it is a folder, network path, read the file info, from this the path, file extension, from this then whether it is a link, if it is a link, then we resolve the path if necessary and we then also read the file name . We understand that loading this icon in the background takes about 10 seconds. There can be reasons for this, in principle we use native methods for this. see also IconReader.cs Unfortunately, we think that there is nothing that can be speeded up directly here. So we decided back then to load the icon in the background so that the UI doesn't freeze and the menus open quickly. Furthermore, we have a cache for all items from the main menu and one for all items from all sub-menus. The items in the main menu have their own cache. Another solution I would think of here is that you add the one folder that is the problem to the 'Directories' options. These additional files that are added to the main menu are treated like items from the main menu, so there is virtually no cache limit. So the issue would be at least limited to the application start. Maybe that helps already? we can discuss the topic further here. It's best to add it to directories and give feedback if that helps. Looking forward for your feedback and discussions here i will flag as FAQ |
Hello Markus, thank you for your answer so far and trying to explain the problem. So I do understand that it can +/- time to load entire content of all folders/path/icons and to display them if you do it on fly. I also have already added all folders into the directories tab because I also need to find those tool names I have added via search mask but this also didn't increase the speed. So I do remember that in some of your older versions I had to re-start your app after adding a new file (.lnk) into the system try main folder because your tool didn't recognize the update. So what is if you just add some new function to read all datas on app start and store them into internal buffers and when the user does use your app to get the content displayed then you can just access your internel buffers / read datas / display them super fast. This method would be some kind of static single read & store and no more update on fly. The dis-advanatge would be the missing update status. Example: At the moment your app works somehow to read datas on user access / on fly to show all infos in realtime right. When I as user add some new files into STM folder/s then it will also recognize them and show them too. All fine so far. Now you could add another option for the users just to read all files from STM folder/s on app start only (just once) and then you just read / store all infos you need in buffers and do access/read from them when the user does access STM etc to prevent another refresh reading / checking for new items what does save time and you can display all menus right away without any waiting times. When the users now add some new items into the STM folder then STM till NOT update this in this case. So for this little problem you could just add another function called "UPDATE" just adding a another gray icon and place it next to the pin icon / setting icon / re-start icon the user can click on it and then your app does re-read all datas new. So what do you think about that as alternative method for users who would prefer this way? Info: Round Corners. So this isn't looking really nice. They are too angular instead of round. Maybe you could work on a better owner draw to make the look some better or something. Also some gardient fill color mix would be welcome too instead of using pure colors what dosen't look very nice. What about a image / wallpaper as background? Some little more stylish features would be not wrong or? Of course, these are just addon requests only (no must). PS: Wie gesagt, deine App ist super und gehört zu meinen "MUST HAVE" tools! Dickes Lob schonmal dafür! 😃 |
Thank you for the feedback! yes, the live update we made with we read the main folder and all added to the main folder when the app starts. somehow we don't see a real problem. If you feel like it, you can make us a video of the behavior. I'm going to show you a video here. 20230115_134800.mp4This may also be due to the fact that I use an ssd drive (instead hdd drive), with an hdd it may take longer to load the icon there, but we can't really improve that. Or it should be like this if it was added as a directory to the main folder, it queries the icons when the app is started and then it should not have any loading time when open the related subfolder since the icons are already in the cache. Related to other topic 'Round Corners': Related to other topic 'Gradient background' / 'images background': |
@Dean-Corso
That would be possible, but you can also see it by typing '*' in the search bar. we don't need this information often, maybe that's enough to check by typing the star. Otherwise it's best to open new issue for this. and this
I think we intentionally removed this context menu. I don't even know why. Yes, we should probably put that back in. if I have forgotten more, please write again or create new issue for new topics. Thank you for your praise of the tool, we're really pleased : ) |
Hello @Hofknecht, so I understand your point you don't wanna change it back again to old refresh method when some new item/s was added etc but you could add this old way as custom setting / user choice (not default) to enable it you know. Yes of course, so there is no real problem with your app which works 1A and I'am just wail on a higher level (there is no serious problem or anything like that). Normally I start STM via Windows autostart to have in my tray and when I need to load any app I do use it. The thing is that the first main tab gets always loaded without any waiting time and it opens just right away but then when I go on the first folder to open the new tab then it stops and I have to wait a longer while and this is a little annoying if this happens. But after this the access is very quick a longer while. Not sure how long I have to wait to reproduce this problem another time etc. Fact is, when I start my PC then Windows is ready to use (20 seconds I think / SSD) and I go then on STM and wanna see into any folder (like you did in your video) then I have this waiting problem. I think somehow it could be possible to read all item datas on first run of STM in hidden modus so that I as user don't need to access every folder manually with the mouse in STM to make them load / show. So if you just do this by the app itself then you have all datas in cache already which should then make the loading faster. So I think I would implement both loading versions for the users. First one is the live update method as it does now already = default mode and second could be old static load & store method without live update (just needs restart to read new items) but right away showing all items. So in my case I'am adding not offten new items what makes a live update superfluous for me and I would prefer a quicker load & show items method you know. Other people would prefer live update and then it would be maybe a good idea to have the choice of any of them you know. Ah ok now I see it when I enter '*' into search bar. 😃 So this I didn't tried to enter before but also in this case you have to use the keyboard itself again. Just remember, many people do not like to use the keybord / key-shortcuts and prefer using just the mouse. Otherwise you could also think about people with some "Handicap" what could impair their normal actions and can not using keyboard so easy etc. I always asked myself why there is no MONO audio switch on the video player on youtube (just a example). You have many option on the YT player (subtitles, quality, playback speed, mini - theater - fullscreen) but no audio mono switch and the question is why not? They just don't think about people with hearing handicaps (left / right) and if an audio is just playing at one side or mixed then they have the problem to hear everything and then it makes also sense to set the audio to mono to get all on both sides (left & right). As I said, thats just a example (farfetched). So, compared this example to your app would it mean that a another info for all items (items 23 | all items 183) would make sense and save a detour to get that information. Yes, adding a simple paste menu entry in searchbars of your app would be good. Ok, if it makes too much trouble with performance doing some graphic / design changes then its better to skip that and keeping the performance in good working state. PS: By the way, I will try to make a video tomorrow to show you the long waiting time on first use after starting the PC. |
Ok I made a short video where you can see the waiting process right after using your tool first time after PC start. Just have a look to see this issue.... STM_Video_2023-01-16_220334.mp4 |
Hello @Hofknecht,
so I'am using your SystemTrayMenu for a long while now because its a great app (thank you) of course but I have a little problem with the loading time sometimes. I'am using round about 10 sub folders where I have stored many shortcuts into +200 and when I move with the mouse over a folder then it takes a longer while +/- 10 seconds to load all icons and showing them to me. In this folder I have 49 items. After that the loading time is very fast again for time XY and after waiting time X it takes again a long time. How to prevent this or how to improve this? I have set the cache to 200 (clear cache). Maybe you can give some advice.
On the first panel we can see the item count on the left side which shows all items on that panel. Could you add also a item count info for all items like this....
items 23 | all items 183
...and also on that search bar at the top of each panel is the right mouse button / context menu not working to show anything so thats bad because I want to past some text / name into that edit control. Just wanna ask whether you can enable it or whether you could add just small button at the end to past text from clipboard into etc. Something like that would be nice to prevent using keyboard each time to enter something you know. Thank you.
The text was updated successfully, but these errors were encountered: