Performance: consider passive node labels and a single active text editor #391
Replies: 22 comments 1 reply
|
Hi, thanks. I dont know anything about your Workflow editor, or what or why anything is surprising. Might i suggest, rather than read code and run it through an LLM (im assuming, based off of the text style, apologies if not!) - code is run through instrumentation? #1 - what performance are you referring to? UI performance I assume given what youve stated? That surprises me because Fabric has pretty optimized SwiftUI with minimal redraws. #2 - Rendering performance? if so, can you give me numbers? #3? - feels? If so, can you please describe what you mean specifically.
Nodes and View Models are distinct, and care has been taken to make editing of a View Model a distinct operation from editing a node. However, depending on what you are editing, and how, may cause some hiccups. Fabrics rendering thread, due to Satin right now, is single threaded. Thanks for taking the time to write a bug report, but im honestly not really sure what to do with a lot of the conjecture, nothing has been measured, nothing has been clearly stated as problematic, and this bug report feels a bit like shaking a magic 8 ball at some source code. I'll leave this open on the hopes that something concrete can come out of it. Thanks! |
|
Also, feel free to run a benchmark, Fabric has a procedural node API, so creating a graph from a for loop is doable! |
|
Thanks. One concrete observation from my side:
Using a single text input/function to populate the nodes gives a noticeable improvement in editing speed.
I haven't instrumented it yet, so I don't want to speculate about the cause. This is simply an observed difference in the editing interaction.
…
Четверг, 1 октября 2026, 07:29 -07:00 от Anton Marini ***@***.***
>:
Hi, thanks.
I dont know anything about your Workflow editor, or what or why anything
is surprising. Might i suggest, rather than read code and run it through
an LLM (im assuming, based off of the text style, apologies if not!) -
code is run through instrumentation?
#1 ( #1 ) - what performance
are you referring to? UI performance I assume given what youve stated?
That surprises me because Fabric has pretty optimized SwiftUI with minimal
redraws.
#2 ( #2 ) - Rendering
performance? if so, can you give me numbers?
#3 ( #3 )? - feels? If so,
can you please describe what you mean specifically.
>
>
> displaying a graph versus editing a graph.
>
>
Nodes and View Models are distinct, and care has been taken to make
editing of a View Model a distinct operation from editing a node. However,
depending on what you are editing, and how, may cause some hiccups.
Fabrics rendering thread, due to Satin right now, is single threaded.
Thanks for taking the time to write a bug report, but im honestly not
really sure what to do with a lot of the conjecture, nothing has been
measured, nothing has been clearly stated as problematic, and this bug
report feels a bit like shaking a magic 8 ball at some source code.
I'll leave this open on the hopes that something concrete can come out of
it. Thanks!
—
Reply to this email directly, view it on GitHub (
#391?email_source=notifications&email_token=ANTHW7TFIQNYWJ2O7ARX7H35RZS4FA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBWHE4TIMZXUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-18699437
), or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ANTHW7U5H2LMZRD2PYQEVHT5RZS4FAVCNFSNUABIKJSXA33TNF2G64TZHM4TOMZYHEZDKMJWHNCGS43DOVZXG2LPNY5TCMBZGI3DEOJYUF3AE
).
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS (
https://github.com/notifications/mobile/ios/ANTHW7XPLOWB4HBE37A5VDL5RZS4FA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBWHE4TIMZXUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM
) and Android (
https://github.com/notifications/mobile/android/ANTHW7V7OSFKLIM3GIXRUOD5RZS4FA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBWHE4TIMZXUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE
). Download it today!
You are receiving this because you authored the thread. Message ID: <Fabric-Project/Fabric/repo-discussions/391/comments/18699437
@ github. com>
--
Andrey Shad
|
|
What do you mean "single input function" to "populate the nodes" Can you give me steps in the editor? What view are you on, what text field(s) are you interacting with, what is being edited, what nodes are being populated, and it seems you have a solution, can you share a video or numbers of what 'better' is quantifiably? Im not trying to be difficult, i promise, i just have a gap in understanding exactly what you mean. If we can make things faster, better, more elegant im all for it :) |
|
I’m developing my app using Cursor AI, and I ran into some freezing issues while working on the workflow. I came across your app during my search, but I noticed that with a large number of nodes (over 30), the performance was just as slow as mine. I later fixed this on my end: originally, I had a text input function on every single node. I changed it so that a single function handles text changes and monitoring for all nodes based on their ID—this really improved performance for me. I’m just sharing my experience here, not trying to push a specific solution on you. For workflows with more than 100 nodes, I’m considering converting them into a JPEG map whenever the "apply changes" action is triggered.
…
Четверг, 1 октября 2026, 18:48 -07:00 от Anton Marini ***@***.***
>:
What do you mean "single input function" to "populate the nodes"
Can you give me steps in the editor? What view are you on, what text
field(s) are you interacting with, what is being edited, what nodes are
being populated, and it seems you have a solution, can you share a video
or numbers of what 'better' is quantifiably? Im not trying to be
difficult, i promise, i just have a gap in understanding exactly what you
mean. If we can make things faster, better, more elegant im all for it :)
—
Reply to this email directly, view it on GitHub (
#391?email_source=notifications&email_token=ANTHW7TXJZMR75DN5QRHJF35R4CO3A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGA3TOMBQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-18707700
), or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ANTHW7W5IB74LJB4SHYXXSD5R4CO3AVCNFSNUABIKJSXA33TNF2G64TZHM4TOMZYHEZDKMJWHNCGS43DOVZXG2LPNY5TCMBZGI3DEOJYUF3AE
).
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS (
https://github.com/notifications/mobile/ios/ANTHW7WR7RVTOSZ27MK5W335R4CO3A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGA3TOMBQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM
) and Android (
https://github.com/notifications/mobile/android/ANTHW7VLXW73UXGA4QTN2RT5R4CO3A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGA3TOMBQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE
). Download it today!
You are receiving this because you authored the thread. Message ID: <Fabric-Project/Fabric/repo-discussions/391/comments/18707700
@ github. com>
--
Andrey Shad
|
|
Additionally, I want to set the input fields to be editable via the right mouse button when a node is selected. I’d be happy if any of this proves useful.
…
Четверг, 1 октября 2026, 18:48 -07:00 от Anton Marini ***@***.***
>:
What do you mean "single input function" to "populate the nodes"
Can you give me steps in the editor? What view are you on, what text
field(s) are you interacting with, what is being edited, what nodes are
being populated, and it seems you have a solution, can you share a video
or numbers of what 'better' is quantifiably? Im not trying to be
difficult, i promise, i just have a gap in understanding exactly what you
mean. If we can make things faster, better, more elegant im all for it :)
—
Reply to this email directly, view it on GitHub (
#391?email_source=notifications&email_token=ANTHW7TXJZMR75DN5QRHJF35R4CO3A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGA3TOMBQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-18707700
), or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ANTHW7W5IB74LJB4SHYXXSD5R4CO3AVCNFSNUABIKJSXA33TNF2G64TZHM4TOMZYHEZDKMJWHNCGS43DOVZXG2LPNY5TCMBZGI3DEOJYUF3AE
).
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS (
https://github.com/notifications/mobile/ios/ANTHW7WR7RVTOSZ27MK5W335R4CO3A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGA3TOMBQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM
) and Android (
https://github.com/notifications/mobile/android/ANTHW7VLXW73UXGA4QTN2RT5R4CO3A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGA3TOMBQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE
). Download it today!
You are receiving this because you authored the thread. Message ID: <Fabric-Project/Fabric/repo-discussions/391/comments/18707700
@ github. com>
--
Andrey Shad
|
|
I havent seen any slowdown with 30 nodes and im on an M1. Can you PLEASE, give me a SPECIFIC STATEMENT of what is slow. DO you know how to measure things? IS RENDERING SLOW? IS TYPING TEXT FOR YOU SLOW? IS SELECTING AND GETTING A CUrSOR? CAN YOU RECORD A VIDEO? CAN YOU MAKE A SPECIFIC STATEMENT THAT ISNT HAND WAIVING |
|
I tried it in macOS 26 on the M4 Max; right now I'm setting up version 27, but I'll give it a try when I go back to 26.
…
Пятница, 2 октября 2026, 09:49 -07:00 от Anton Marini ***@***.***
>:
I havent seen any slowdown with 30 nodes and im on an M1.
Can you PLEASE, give me a SPECIFIC STATEMENT of what is slow. DO you know
how to measure things?
IS RENDERING SLOW? IS TYPING TEXT FOR YOU SLOW? IS SELECTING AND GETTING A
CUrSOR?
CAN YOU RECORD A VIDEO? CAN YOU MAKE A SPECIFIC STATEMENT THAT ISNT HAND
WAIVING
—
Reply to this email directly, view it on GitHub (
#391?email_source=notifications&email_token=ANTHW7VPAL4TFULTOYHLQCD5R7MB3A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4DSNRQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-18718960
), or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ANTHW7VMALMBJPD6PZUFIO35R7MB3AVCNFSNUABIKJSXA33TNF2G64TZHM4TOMZYHEZDKMJWHNCGS43DOVZXG2LPNY5TCMBZGI3DEOJYUF3AE
).
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS (
https://github.com/notifications/mobile/ios/ANTHW7VFLXNYR77H47ZA7YL5R7MB3A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4DSNRQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM
) and Android (
https://github.com/notifications/mobile/android/ANTHW7XT3RSOBKNNJG434735R7MB3A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4DSNRQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE
). Download it today!
You are receiving this because you authored the thread. Message ID: <Fabric-Project/Fabric/repo-discussions/391/comments/18718960
@ github. com>
--
Andrey Shad
|
|
I honestly cant tell if you are trolling me or not. TRY WHAT!? USE YOUR WORDS TO DESCRIBE STEPS YOU HAVE TAKEN THAT MAKES YOU PERCEIVE THIS ILLUSIVE SLOWNESS YOU KEEP MENTIONING YET REFUSE TO SPECIFY? |
|
I didn't want to accuse or offend anyone; I described working on my app in Xcode using C++, Swift, and Metal, and tried to find an external solution as a replacement. Fabric Editor showed performance times similar to my own code. I was just sharing my experience. Sorry for the Google Translate.
…
Пятница, 2 октября 2026, 10:05 -07:00 от Anton Marini ***@***.***
>:
I honestly cant tell if you are trolling me or not.
TRY WHAT!?
USE YOUR WORDS TO DESCRIBE STEPS YOU HAVE TAKEN THAT MAKES YOU PERCEIVE
THIS ILLUSIVE SLOWNESS YOU KEEP MENTIONING YET REFUSE TO SPECIFY?
—
Reply to this email directly, view it on GitHub (
#391?email_source=notifications&email_token=ANTHW7QBCZTLT2Z6YWJ3VHT5R7N5DA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4TCNJUUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-18719154
), or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ANTHW7SQJSZ2XFJPLLZHMMD5R7N5DAVCNFSNUABIKJSXA33TNF2G64TZHM4TOMZYHEZDKMJWHNCGS43DOVZXG2LPNY5TCMBZGI3DEOJYUF3AE
).
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS (
https://github.com/notifications/mobile/ios/ANTHW7WPYFZDONZ772ECEY35R7N5DA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4TCNJUUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM
) and Android (
https://github.com/notifications/mobile/android/ANTHW7XUB5AMWUKMUDWUKHT5R7N5DA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4TCNJUUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE
). Download it today!
You are receiving this because you authored the thread. Message ID: <Fabric-Project/Fabric/repo-discussions/391/comments/18719154
@ github. com>
--
Andrey Shad
|
|
Youre fine, i just want you to please be specific. you say you make > 30 nodes. can you tell me what gets slow? a) scrolling the canvas? can you share a document? just attach it as an attachment to your post. I want to help you, but HELP me help you. |
|
Canvas scrolling slowed down when half the screen was filled with nodes—I have a specific use case involving a large number of nodes. I didn't set up Fabric in Xcode; I'm going to switch back to the old system now and record a video.
…
Пятница, 2 октября 2026, 10:27 -07:00 от Anton Marini ***@***.***
>:
Youre fine, i just want you to please be specific.
you say you make > 30 nodes.
can you tell me what gets slow?
a) scrolling the canvas?
b) editing text? if so, what text are you editing?
c) rendering? if so, what nodes are rendering?
can you share a document? just attach it as an attachment to your post.
I want to help you, but HELP me help you.
—
Reply to this email directly, view it on GitHub (
#391?email_source=notifications&email_token=ANTHW7XPKCTD3J4I33IBRED5R7QOXA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4TIMRXUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-18719427
), or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ANTHW7W6ALN3GLCK2WZN5RL5R7QOXAVCNFSNUABIKJSXA33TNF2G64TZHM4TOMZYHEZDKMJWHNCGS43DOVZXG2LPNY5TCMBZGI3DEOJYUF3AE
).
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS (
https://github.com/notifications/mobile/ios/ANTHW7WIJW236AFBWWWODHT5R7QOXA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4TIMRXUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM
) and Android (
https://github.com/notifications/mobile/android/ANTHW7VCY3TJ3B2OC7GJRF35R7QOXA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4TIMRXUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE
). Download it today!
You are receiving this because you authored the thread. Message ID: <Fabric-Project/Fabric/repo-discussions/391/comments/18719427
@ github. com>
--
Andrey Shad
|
|
Thank you for being specific! Ok, so lots of nodes = slower scrolling. Yes, to some extent thats true. However i see scrolling at > 60fps (down from 120) with 50 or so nodes by duplicating the default document content a few times. No scrolling i see rendering at 120hz, scrolling i see around 80 on M1 Max on macOS 15. Here is a test graph attached: Questions for you a) are you using the latest beta release of Fabric? If not, are you compiling release or debug (hint, use release)
when you scroll, please report the FPS you see (the changes) |
|
…
Пятница, 2 октября 2026, 10:41 -07:00 от Anton Marini ***@***.***
>:
Thank you for being specific! Ok, so lots of nodes = slower scrolling.
Yes, to some extent thats true. However i see scrolling at > 60fps (down
from 120) with 50 or so nodes by duplicating the default document content
a few times.
No scrolling i see rendering at 120hz, scrolling i see around 80 on M1 Max
on macOS 15.
Here is a test graph attached:
Lots-of-Nodes.fabric.zip (
https://github.com/user-attachments/files/32973269/Lots-of-Nodes.fabric.zip
)
Questions for you
a) are you using the latest beta release of Fabric? If not, are you
compiling release or debug (hint, use release)
b) if you are compiling, suggest you enable metal performance HUD - you'll
see something like :
Image: image (view on web) (
https://github.com/user-attachments/assets/e6756739-c2c7-499f-b378-4d7eff339187
)
when you scroll, please report the FPS you see (the changes)
—
Reply to this email directly, view it on GitHub (
#391?email_source=notifications&email_token=ANTHW7UZX5WNRG5BNTTZRFT5R7SENA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4TMMBWUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-18719606
), or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ANTHW7SQVT75CO6ZXVUF3VT5R7SENAVCNFSNUABIKJSXA33TNF2G64TZHM4TOMZYHEZDKMJWHNCGS43DOVZXG2LPNY5TCMBZGI3DEOJYUF3AE
).
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS (
https://github.com/notifications/mobile/ios/ANTHW7RBBAGN7K6MTKLEZG35R7SENA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4TMMBWUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM
) and Android (
https://github.com/notifications/mobile/android/ANTHW7UCW7TKZZ2YGSETIAL5R7SENA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGE4TMMBWUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE
). Download it today!
You are receiving this because you authored the thread. Message ID: <Fabric-Project/Fabric/repo-discussions/391/comments/18719606
@ github. com>
--
Andrey Shad
|
|
Ok, i appreciate a trace, but can you please answer some of the questions above? |
|
Thanks.
a) I am using the latest beta release of Fabric Editor. I am not compiling Fabric myself — I am using the released application from /Applications/Utilities/Fabric Editor.app.
b) I tried to enable the Metal Performance HUD using the application bundle identifier graphics.fabric.FabricEditor, but the HUD did not appear.
I also ran Instruments → Hitches while testing my 64-node document. The result was 31 hitches over 12.48 s, with:
*
minimum duration: 20 ms
*
average duration: 402.58 ms
*
maximum duration: 560 ms
I understand that this is not the same as an FPS measurement, so I won't interpret these numbers as the application's FPS.
I can repeat the test with your Lots-of-Nodes.fabric document and compare the scrolling behaviour under the same conditions.
My machine is an M4 Max MacBook Pro running macOS 26.
*The document “Lots-of-Nodes.fabric” could not be opened. The data isn’t in the correct format.*
…
Пятница, 2 октября 2026, 11:50 -07:00 от Anton Marini ***@***.***
>:
Ok, i appreciate a trace, but can you please answer some of the questions
above?
—
Reply to this email directly, view it on GitHub (
#391?email_source=notifications&email_token=ANTHW7VUXRYECBXPBJK7C3D5R72FXA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYDIMZTUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-18720433
), or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ANTHW7T4LIWS43S5Y6C5G535R72FXAVCNFSNUABIKJSXA33TNF2G64TZHM4TOMZYHEZDKMJWHNCGS43DOVZXG2LPNY5TCMBZGI3DEOJYUF3AE
).
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS (
https://github.com/notifications/mobile/ios/ANTHW7WCO5QK33FFKO4LJPD5R72FXA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYDIMZTUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM
) and Android (
https://github.com/notifications/mobile/android/ANTHW7V5NPPC7BMPTECQC635R72FXA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYDIMZTUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE
). Download it today!
You are receiving this because you authored the thread. Message ID: <Fabric-Project/Fabric/repo-discussions/391/comments/18720433
@ github. com>
--
Andrey Shad
|
|
ok, so the trace is interesting, it seems to indicate hit testing and tool tips are the issue, not text fields. thats odd because hit testing should be disabled during scrolling. Do you know if you saw hitches doing scroll, or on start / end of scrolling? |
|
There is an initial delay during panning. In my application, I avoided having all nodes simultaneously listen to the input fields by implementing a single text source that populates the nodes.
…
Пятница, 2 октября 2026, 12:09 -07:00 от Anton Marini ***@***.***
>:
ok, so the trace is interesting, it seems to indicate hit testing and tool
tips are the issue, not text fields.
thats odd because hit testing should be disabled during scrolling.
Do you know if you saw hitches doing scroll, or on start / end of
scrolling?
—
Reply to this email directly, view it on GitHub (
#391?email_source=notifications&email_token=ANTHW7W33MIJJSAKPUZA4ZD5R74NBA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYDMMJQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-18720610
), or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ANTHW7XQRIWJVQ3QTXBDXEL5R74NBAVCNFSNUABIKJSXA33TNF2G64TZHM4TOMZYHEZDKMJWHNCGS43DOVZXG2LPNY5TCMBZGI3DEOJYUF3AE
).
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS (
https://github.com/notifications/mobile/ios/ANTHW7VHLTARRUOKRLTAXJT5R74NBA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYDMMJQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM
) and Android (
https://github.com/notifications/mobile/android/ANTHW7U7MK5DY2OSBFUSQ5T5R74NBA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYDMMJQUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE
). Download it today!
You are receiving this because you authored the thread. Message ID: <Fabric-Project/Fabric/repo-discussions/391/comments/18720610
@ github. com>
--
Andrey Shad
|
|
If there’s even a 2-second lag, set the resolution to the maximum. I use the Pro Display XDR at 60 fps and 3008x1692—not the highest setting.
…
Пятница, 2 октября 2026, 12:27 -07:00 от Anton Marini ***@***.***
>:
Yup, i heard you about your solve.
However, Its odd, i have no delay when panning, definitely not on the
order of the traces you seem to be getting. My frame rate stays pretty
solid, and hitches are minimal. I dont have a macOS 26 system, but have a
15 and a 27, and neither seem to have it.
What sort of a delay? A frame hiccup (barely noticable) or a long delay
near 1 second?
Hrm. Im trying to ponder what else might be the problem? Are you running
on a second display? using high frame rate (> 60 display?)
Any system hacks or add ons or monitoring stuff you have?
—
Reply to this email directly, view it on GitHub (
#391?email_source=notifications&email_token=ANTHW7RKHHBVMXSENA6VF2L5R76S7A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYDQNJZUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-18720859
), or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ANTHW7SIIZ72XJDZS7OKLOT5R76S7AVCNFSNUABIKJSXA33TNF2G64TZHM4TOMZYHEZDKMJWHNCGS43DOVZXG2LPNY5TCMBZGI3DEOJYUF3AE
).
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS (
https://github.com/notifications/mobile/ios/ANTHW7SZCCPB34CC3GJGGQD5R76S7A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYDQNJZUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM
) and Android (
https://github.com/notifications/mobile/android/ANTHW7SLTCHQ6IURCMV67E35R76S7A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYDQNJZUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE
). Download it today!
You are receiving this because you authored the thread. Message ID: <Fabric-Project/Fabric/repo-discussions/391/comments/18720859
@ github. com>
--
Andrey Shad
|
|
Interesting. Ive got a 60fps 5k ultra wide, and def do not see a 2 second lag on scrolling (I do see a few frame hitch). I ran the profiler myself and didnt see anything like what you see, which is odd. Something weird is up. Do you have any assistive devices or System Preferences enabled that may cause system UI to interact differently? (ie accessibility, or transparency, reduce motion etc) What language is your default? Any extensions or anything else? |
|
I don't do testing. Let's chalk it up to the quirks of "26." I'm Russian, from St. Petersburg. Good luck with your work.
…
Пятница, 2 октября 2026, 12:57 -07:00 от Anton Marini ***@***.***
>:
Interesting. Ive got a 60fps 5k ultra wide, and def do not see a 2 second
lag on scrolling (I do see a few frame hitch). I ran the profiler myself
and didnt see anything like what you see, which is odd.
Something weird is up.
Do you have any assistive devices or System Preferences enabled that may
cause system UI to interact differently? (ie accessibility, or
transparency, reduce motion etc)
What language is your default?
Any extensions or anything else?
—
Reply to this email directly, view it on GitHub (
#391?email_source=notifications&email_token=ANTHW7RATVNJ33UAQG3YP6T5SACCRA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYTEMJXUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-18721217
), or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ANTHW7WH3WGNHHQOAYMFIQ35SACCRAVCNFSNUABIKJSXA33TNF2G64TZHM4TOMZYHEZDKMJWHNCGS43DOVZXG2LPNY5TCMBZGI3DEOJYUF3AE
).
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS (
https://github.com/notifications/mobile/ios/ANTHW7SWCCWPNO3PAKAPALL5SACCRA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYTEMJXUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM
) and Android (
https://github.com/notifications/mobile/android/ANTHW7VFJRXTVZD4PYPMUZD5SACCRA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCOBXGIYTEMJXUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE
). Download it today!
You are receiving this because you authored the thread. Message ID: <Fabric-Project/Fabric/repo-discussions/391/comments/18721217
@ github. com>
--
Andrey Shad
|
|
Thanks for wasting everyones time haha |

Uh oh!
There was an error while loading. Please reload this page.
Performance: passive node labels vs. persistent TextFields in nodes
Observation
I have been comparing Fabric Editor with my own Workflow editor using a similar node structure and a comparable number of nodes.
What surprised me is that Fabric is not noticeably faster than my implementation.
This made me look beyond graph rendering and consider the amount of active interaction/state machinery maintained by each node.
Performance hypothesis
One thing I would suggest investigating is the use of editable input controls inside every node.
If each node contains its own
TextField, the graph may be maintaining a large number of active:Bindingrelationships@State/ observable dependenciesonChangehandlersFocusStateEven when the graph is only being viewed and no node is being edited, all of these controls may still participate in the SwiftUI view hierarchy.
With a large graph, this could become significantly more expensive than the actual drawing of the nodes.
Proposed experiment
I would be interested in seeing a benchmark comparing these two approaches.
Current-style architecture
Alternative architecture
In the second approach, normal graph viewing contains only passive text.
Editing is performed only for the currently selected node. The edited value can remain temporary until the user presses Apply, at which point the model is updated once.
After Apply, the TextField can disappear and the node returns to a passive
Textview.Why I think this is worth testing
This separates two fundamentally different operations:
displaying a graph versus editing a graph.
The graph can contain hundreds of nodes, but normally only one node needs to be interactive.
It also reduces the possibility that typing into one node causes unnecessary observation/binding/invalidation work elsewhere in the graph.
I don't know whether Fabric currently keeps persistent input controls/listeners in every node, so I'm raising this as a performance hypothesis rather than a conclusion.
If Fabric already uses a single active editor or otherwise avoids persistent input controls, then I would be interested in what the current profiling identifies as the dominant cost.
The fact that applications such as Obsidian remain very responsive with large numbers of visually complex elements makes the distinction between rendered objects and interactive objects particularly interesting here.
A simple benchmark with the same graph and node count should make the difference measurable.
All reactions