优化内存占用 - Listary 6.3.0.77 beta 🌟

下载链接:https://www.listary.net/download/beta/Listary.exe

:star_struck: 关注 Channing 的推特 @HiChanning 或微博 @炼丹的Channing ,了解 Listary 的最新开发状况。


Listary V6.3 beta 又再次更新啦,本次主要解决了 Listary-core 内存泄漏问题,并且对很多细节问题进行了全方位的优化,欢迎大家试用~

V6.3.0.69 更新日志

  • 修复:修复了 Listary-core 内存泄漏问题。

  • 新增:默认搜索所有文件,不需要手动开启“不常用文件”。

  • 改进:全面优化了自定义文件夹/网盘索引机制。

    • 支持索引自动更新(大多数 NAS 设备可用)。

    • 开机启动后网络索引不再重建。

  • 改进:优化了文件搜索窗口的使用体验。

    • 删除:双击 Ctrl 关闭文件搜索窗口。

    • 新增:通过 Esc 键清除搜索词。

    • 改进:默认开启“不常用文件”开关。

    • 修复:文件搜索窗口无法横向滚动的问题。

    • 修复:搜索词和 cue banner 重叠的问题。

    • 修复:文件搜索窗口侧边栏的一些 UI 问题。

  • 新增:“开机自启动”设置选项

  • 优化:优化设置中优先级的 UI,支持恢复默认的优先级规则。

  • 新增:新增 Listary 诊断工具,用于诊断程序卡死、CPU 占用等各种问题。

  • 修复:打开已删除、移动或无权限文件导致的崩溃问题。

  • 优化:打开文件夹时,如果该文件夹已被打开,则不会打开新的窗口。

V6.3.0.71 更新日志

  • 改进:打开 OneDrive 未下载文件时显示下载进度。

  • 修复:解决了索引网络驱动器或自定义文件夹导致崩溃的问题。

V6.3.0.73 更新日志

  • 新增:支持在文件搜索窗口中通过热键打开预览窗格。

  • 新增:增加了对 OneCommander 文件管理器的支持。

  • 改进:显著减少了首次打开启动器所需的时间。

  • 改进:Listary 不再在文件对话框中按下前导空格时触发,增强了与像 QuickLook 这样的工具的兼容性。

  • 修复:解决了处理 Unicode 字符时发生的罕见崩溃问题。

  • 修复:解决了在搜索历史记录时可能发生的潜在崩溃问题。

V6.3.0.75 更新日志:

  • 新增:新增了对 Files (https://files.community/) 的支持。
  • 修复:解决了百度搜索提示的问题。
  • 修复:解决了磁盘搜索引擎可能发生的潜在崩溃问题。
  • 修复:解决了打开文件时可能发生的潜在崩溃问题。

6.3.0.77 更新日志:

  • 修复:修复了一些已知的潜在问题。
2 Likes

只看更新日志,有两个疑惑。

和作为「优化文件搜索窗口使用体验」的子项的

似乎都是指文件搜索窗口,因为启动器没有对应开关。那么更新日志并没有反映启动器的行为是否改变。

第二个疑惑是

推测 Esc 键的功能是:第一次按(或搜索词非空时按)清除搜索词,第二次按关闭窗口。否则键盘关闭窗口就只能 Alt + F4 了,这不太可能。

更新后,启动器和文件搜索窗口都默认搜索所有文件。

是的,ESC 关闭窗口的功能还在。当搜索词非空时清除搜索词,当搜索词空时关闭窗口。

明白了。

新版覆盖安装 运行时 报错
Listany hasoroolem,please restart it.encountere0
Error message:
System.AggregateException: 未通过等待任务或访问任务的 Exception 属性观察到任年的异常。因此,终结器线程重新引发了未观察到的异常。
system.ComponentModel.Win32Exception: 拒绝访问.
在System.Diagnostics.Process.StartWithCreateProcess(ProcessStartinfo startinfc在System.Diagnostics.Process.Start(ProcessStartinfo startlnfo)在 Listary.Core…MoveNext0) 位置6obXaEfspcFFeiz6TldrXfdlggtopu4QDwTQfX9WyYGX/Qr2TTaei5cK/OAiCuzy1R㎡6fYgmeLBEAC/9DwCA==>:行号 63
-引发异常的上一位置中堆栈跟踪的末尾 —
在System.Runtime.ExceptionServices.ExceptionDispatchinfo.Throw()在
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggertotification(Task task)
在Listany.core…MoveNext0 位置6obXaEfspcFFeiz6Tldrxfdlggtopu4QDwTOfX9WYGX/Qr2TTaei5cK/OAiCuzy1R㎡V6fYgmeLBEAC/9DwCA==>:行号 117
–引发异常的上一位置中堆栈跟踪的末尾—
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(改
system.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerl
otification(Task task)
在Listary.Core.FileSearch…MoveNext0)位置:6obXaEfspcFFeiz6Tldrxfdlggtopu4QDwTQfX9WvYGjRCo0RhiNlc2uteSgTlr3/7jxJuaw5BDQHaMsKYtlFopN7yxMGk7qMlA5xmxclzM=>:行号97
—内部异常堆栈跟踪的结尾 —在System.Threading.Tasks.TaskExceptionHolder.Finalize0–>(内部异常 #0) System.ComponentModel.Win32Exception(0x80004005):拒绝访
在System.Diagnostics.Process.StartWithCreateProcess(ProcessStartinfo startinfc在System.Diagnostics.Process.Start(ProcessStartinfo startinfo)在 Listany.core…MoveNext0)位置:6obXaEfspcFFeiz6Tldrxfdlggtopu4QDwTQfX9WvYGX/Qr2TTaei5cK/0AiCuzy1Rm
aV6fYgmeLBEAC/9DWCA==>:行号63
-引发异常的上一位置中堆栈跟踪的末尾—
在System.Runtime.ExceptionServices.ExceptionDispatchinfo.Throw(延
System.Runtime.CompilerSerices.TaskAwaiter.HandleNonSuccessAndDebuggerr
otification(Task task)在Listany.core…MoveNext)位置6obXaEfspcFFeiz6Tldrxfdlggtopu4QDwTQfX9WYGX/Qr2TTaei5cK/0AiCuzy1Rm
6fYgmeLBEAC/9DWCA==>:行号 117–引发异常的上一位置中堆栈跟踪的末尾—在System.Runtime.ExceptionServices.ExceptionDispatchinfo.Throw(
system.Runtim套口rvices.TaskAwaiter.HandleNonSuccessAndDebuggert
tification(Task task)
.MoveNext0位置
在Listary.Core.FileSearch.
6obXaEfspcFFeiz6Tldrxfdlggtopu4QDwTQfX9WvYGjRCo0RhINlc2utesgTlr3/7ixhaw5BDQHaMsKYtlFopN7yxMGk7qMlA5xmxclzM=>:行号97<–

有进程没起来,可能被杀毒软件拦截了。可以试一下重装 + 重启。我们会再深入调查一下具体原因。

右键以管理员身份运行 Listary 时有这个问题吗?

重启后,故障暂时没有复现

2 posts were split to a new topic: 如何使用关键字快速跳转到某个文件夹?

①双击Ctrl弹出启动器
②再双击Ctrl,弹出搜索窗口
③再双击Ctrl,又切换回启动器
-----------------------------------上面是第1种操作----------------------------------
①双击Ctrl弹出启动器
②再双击Ctrl,弹出搜索窗口
③再双击Ctrl,搜索窗口关闭,什么窗口都没有了
-----------------------------------上面是第2种操作----------------------------------
------------------------------------------问题--------------------------------------------
①请问第1种操作和第2种操作,在哪里设置选第1种操作?在哪里设置选第2种操作?我没有找到设置2种不同操作的选项
②打搅了,谢谢大神

这个不能设置,我们会给出我们心中最佳的操作。因为现在还在 beta 版本,我们还在探索最佳的操作方式,所以每个 beta 版本在操作上都有细微的调整。


现在的操作是(基本已经确定,不会变了):

  1. 双击 Ctrl 弹出启动器
  2. 再双击 Ctrl 切换至文件搜索窗口
  3. 再双击 Ctrl 弹出启动器(上一步的文件搜索窗口依然保留)

除此之外:

  1. 文件搜索窗口中,当搜索词非空时,ECS 可以清除搜索词;当搜索词空时,ECS 可以关闭窗口。
  2. 文件搜索窗口可以直接打开:点击托盘图标/自定义快捷键

6 posts were split to a new topic: 如何指定第三方文件管理器打开文件夹,如 Total Commander

升级 6.3.0.69 后,listary 崩溃,感觉与索引 wsl 文件夹有关
我使用 wsl2,最新版,把 wsl文件夹以 \wsl$\Ubuntu-22.04 添加到索引中

能麻烦把日志文件发到 support@listary.com 让我们看一下吗?

  1. 以管理员身份运行“Listary.Diagnostics.exe”,位置在“C:\Program Files\Listary”文件夹下。
  2. 运行后点击“Export Logs”,导出日志文件。

img_v3_0293_3137ade0-f06b-4c43-92e5-b29dce04218g.jpg

网络搜索 菜单中, 中自定义关键字有个搜索提示,选择 BaiDu之后发现并不能进行提示,抓包发现,应该是百度的提示词接口改变了,并不是 suggestion.Baidu.com了,我简单看了下现在的提示词,使用的是www那个域名,然后传递一些参数可以返回,作者一个版本可以看下这个问题。

1 Like

在 6.3.0.71 版本中修复了,可以升级一下试试看。

谢谢,能正常工作了。
不过,发布新版时说,支持索引自动更新(大多数 NAS 设备可用),似乎对 WSL 目录不起作用,还需定期或手动更新。对我的 ubuntu目录,71版索引一次用时大约10分钟,比之前快了一些,比起 everything 还有较大差距,everything 大约只要三四分钟。

①用winrar6.00(64位)压缩1个135M多的文件夹(里边有20张手机拍摄的照片),在选择压缩文件保存路径时,在winrar下面的Listary Pro 6(6.3.0.69beta)小窗里输入保存文件夹名字后,按Enter键跳转到保存的文件夹时,弹出报错窗口,报错窗口截图在第④项,报错文本在⑤项
②Listary Pro 6(6.3.0.69beta)
③Winrar6.00(64位)
④报错截图如下:


⑤报错文本内容如下:

---------------------------

---------------------------
Listary has encountered a problem, please restart it.

Error message:
System.AggregateException: 未通过等待任务或访问任务的 Exception 属性观察到任务的异常。因此,终结器线程重新引发了未观察到的异常。 ---> System.IndexOutOfRangeException: 索引超出了数组界限。

   在 Listary.Core.History..<>c.(String ) 位置 <6obXaEfspcFFeiz6TldrXfdIggtopu4QDwTQfX9WvYGOKYIV1Li35DGNy2ZHToepg+41TQD/+WYgU/xSrJbtTQ==>:行号 89

   在 System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()

   在 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)

   在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)

   在 Listary.Core.History..(PathDbSearchParam ) 位置 <6obXaEfspcFFeiz6TldrXfdIggtopu4QDwTQfX9WvYGOKYIV1Li35DGNy2ZHToepg+41TQD/+WYgU/xSrJbtTQ==>:行号 87

   在 Listary.Core.Search...MoveNext() 位置 <6obXaEfspcFFeiz6TldrXfdIggtopu4QDwTQfX9WvYGk4+gw3mqHNw7zikOdmUBjD+h890sXzuTUP8NKo2Vxo7rhTRCOxobf+0V3juUxWfc=>:行号 49

--- 引发异常的上一位置中堆栈跟踪的末尾 ---

   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   在 Listary.Core.ViewModels.SearchMode..MoveNext() 位置 <6obXaEfspcFFeiz6TldrXfdIggtopu4QDwTQfX9WvYEDZjOf2b7Lpy8DX7EmCKMC7LmbfOhG86vyqTsFEsIKKA==>:行号 216

   --- 内部异常堆栈跟踪的结尾 ---

   在 System.Threading.Tasks.TaskExceptionHolder.Finalize()

---> (内部异常 #0) System.IndexOutOfRangeException: 索引超出了数组界限。

   在 Listary.Core.History..<>c.(String ) 位置 <6obXaEfspcFFeiz6TldrXfdIggtopu4QDwTQfX9WvYGOKYIV1Li35DGNy2ZHToepg+41TQD/+WYgU/xSrJbtTQ==>:行号 89

   在 System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()

   在 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)

   在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)

   在 Listary.Core.History..(PathDbSearchParam ) 位置 <6obXaEfspcFFeiz6TldrXfdIggtopu4QDwTQfX9WvYGOKYIV1Li35DGNy2ZHToepg+41TQD/+WYgU/xSrJbtTQ==>:行号 87

   在 Listary.Core.Search...MoveNext() 位置 <6obXaEfspcFFeiz6TldrXfdIggtopu4QDwTQfX9WvYGk4+gw3mqHNw7zikOdmUBjD+h890sXzuTUP8NKo2Vxo7rhTRCOxobf+0V3juUxWfc=>:行号 49

--- 引发异常的上一位置中堆栈跟踪的末尾 ---

   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   在 Listary.Core.ViewModels.SearchMode..MoveNext() 位置 <6obXaEfspcFFeiz6TldrXfdIggtopu4QDwTQfX9WvYEDZjOf2b7Lpy8DX7EmCKMC7LmbfOhG86vyqTsFEsIKKA==>:行号 216<---


---------------------------
确定   
---------------------------

⑥麻烦大神适配一下,看看是哪里的问题,打搅了,谢谢

关于说支持nas设备这个,不知道怎么理解,是使用第三方工具挂载nas目录那种方式吗,还是支持smb这各路 网上邻居发同的可以打开的目录。
我理解的支持nas检索,应该支持直接添加 webdav ftp等等协议。

这项更新不是专门针对的 NAS。还是和以前一样,资源管理器里可以打开的文件夹都可以添加进索引,目前不支持直接添加 WebDAV / FTP 等协议。

我重新描述一下这条 Changelog:

  • 新增了 ReadDirectoryChangesW() 用来实时监测文件的变化(索引自动更新)。
  • 目前已知 ReadDirectoryChangesW() 可以监控 SMB 协议的网络文件系统,具体还要看服务端是否支持,大部分 NAS 应该都是支持的;不支持 WebDAV 协议。