惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
C
Check Point Blog
月光博客
月光博客
Y
Y Combinator Blog
I
InfoQ
B
Blog RSS Feed
P
Proofpoint News Feed
腾讯CDC
博客园 - Franky
MyScale Blog
MyScale Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
云风的 BLOG
云风的 BLOG
罗磊的独立博客
B
Blog
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
Recent Announcements
Recent Announcements
美团技术团队
大猫的无限游戏
大猫的无限游戏

PBS activity

Make capypdf a submodule (7f9465b6) · Commits · Inkscape / inkscape · GitLab Draft: Make capypdf a submodule to enable it in the PPA (!7987) · Merge requests · Inkscape / inkscape · GitLab a7a272aeb209d29b500adb09d575af1d89645ffe to f9f9d913e36b14250122d9bc43911b5bb84e958c · PBS / Inkscape · GitLab Make capypdf a submodule (12ee5f11) · Commits · Inkscape / inkscape · GitLab Commits · launchpad-staging · Inkscape / inkscape · GitLab Commits · unmeson · PBS / Inkscape · GitLab Objects can't be moved using arrows keys (#6226) · Issues · Inkscape / inkscape · GitLab Down, left, right arrow keys don't work to move objects (#13628) · Issues · Inkscape / Inbox · GitLab Down, left, right arrow keys don't work to move objects (#13628) · Issues · Inkscape / Inbox · GitLab Draft: Expand tests for boolean operations on paths (!7980) · Merge requests · Inkscape / inkscape · GitLab 1.5-dev: cannot create/open documents after closing window on macOS (#5981) · Issues · Inkscape / inkscape · GitLab Use new Modifiers system for the arc tool (!7961) · Merge requests · Inkscape / inkscape · GitLab Remove dependency on deprecated appdirs module (!730) · Merge requests · Inkscape / extensions · GitLab Commits · appdirs · PBS / extensions · GitLab 1.5-dev: Unable to open the Extension Manager (#6202) · Issues · Inkscape / inkscape · GitLab PBS pushed to project branch capypdf-static at PBS / Inkscape PBS pushed to project branch capypdf-static at PBS / Inkscape Make internal capypdf static (!7947) · Merge requests · Inkscape / inkscape · GitLab Shape builder tool does not detect the interior region (#4477) · Issues · Inkscape / inkscape · GitLab Make (most) tests build and run on Windows (!7940) · Merge requests · Inkscape / inkscape · GitLab Generate AppImage with quick-sharun (a465f4ce) · Commits · PBS / Inkscape · GitLab Commits · sharun · PBS / Inkscape · GitLab 1.5-dev: Split mode state is incorrect in the menu when opening a new document (#6135) · Issues · Inkscape / inkscape · GitLab PBS deleted project branch deadlock-win at PBS / Inkscape 1.5-dev: (Windows) Deadlock on quit, process not exiting sometimes (#6003) · Issues · Inkscape / inkscape · GitLab Fix dark mode on gtk 4.20 (!7932) · Merge requests · Inkscape / inkscape · GitLab Fix some resizing issues on Windows by not setting GTK_CSD (!7931) · Merge requests · Inkscape / inkscape · GitLab Draft: Fix AppImage crashing during save on older distros (!7922) · Merge requests · Inkscape / inkscape · GitLab 19086deebf770c8932b403ee536c8f8562a376f9 to 55362ef7d4c363d9613d70ac7194de7e8e323a34 · PBS / Inkscape · GitLab c74f78ca23ff302b7b59175490b870f1a616b778 to 19086deebf770c8932b403ee536c8f8562a376f9 · PBS / Inkscape · GitLab
Speed up ungroup on thousands of items (!7908) · Merge re...
Martin Owens · 2026-05-06 · via PBS activity

Speed up ungroup on thousands of items

  • Review changes

  • Download

Aims to fix the slowness of #3801 which happens on all platforms.

There are two layers of problems behind this:

  1. Slow indexed operations of SPObject->children and DrawingItem. They are currently organized in linked lists, so indexed operations and reordering takes linear time. This is fixed by the "Introducing OrderedList" commit, which makes indexed operations and reordering take logarithmic time.
  2. GTK3 signaling chaos triggered by entry changes in ObjectsPanel. Ungrouping brings each group member adjacent to its parent's siblings, and each reorder takes linear time. This is fixed by rebuilding the entire pane from scratch after ungrouping operation finishes so that it takes linear time overall, available on the commit "Rebuild objects pane after ungrouping". This fix is GTK3-specific for Inkscape 1.4.x and might not be relevant once ObjectsPanel gets ported to GTK4 in 1.5.

Progress so far:

  • Ungrouping original sample file can finish in ~1 minute instead of forever
  • Still triggered numerous selectionChanged signals that runs asynchronously but indefinitely after ungrouping, so UI is slowly responsive and CPU usage is 100% on a single core.
  • As we have ~35000 items on the object pane, every time selection changes it triggers GTK row validation which in turn validates the values on all the 16x35000 cells. This consistently takes 1-2 minutes on my machine, and I think it's another problem to be fixed in another PR.

TODO:

  • Show screen recording
  • Show flame graphs
  • [?] Rebuild the objects pane with the final selection states instead of relying on selection changed signals
Edited by Nagata Aptana