Skip to content
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

hiddenLocalTracksByPid in the URL is too long for profiles with lots of processes #5391

Open
mstange opened this issue Mar 4, 2025 · 1 comment

Comments

@mstange
Copy link
Contributor

mstange commented Mar 4, 2025

Example: https://profiler.firefox.com/public/j9mtns14hb5jhrwqv0ac8mbazgt97dtjerg5kk8/flame-graph/?globalTrackOrder=0wxYlxYnxYoxYmxYpwyBqyBswyBvyBr&hiddenGlobalTracks=0wnpwY0Y2wxGnxGpwxHmxHowxKfxKhwxLjxLlwyBv&hiddenLocalTracksByPid=1-0~1008-0wLb~11902-0wd~14049-0w3~14049.1-0wd~14117-0w5~14117.1-0w8~14208-01~14208.1-0wf~14266-0wxi~14604-0wn~14604.1-0wi~14606-0w5~14606.1-0w8~1471-0wxt~1519-0wx0x2wzt~1583-0wj~1613-0wt~16399-01~16399.1-0wd~16492-0wyl~16494-0wc~16535-0wxq~16645-0we~16765-0wp~16765.1-0ws~16837-01~16837.1-0we~16857-0wo~16858-0w5~16858.1-0wg~17131-0wp~17131.1-0wp~17150-0wx2~17150.1-0wx3~17352-01~17352.1-0wh~18530-0wj~18530.1-0wm~1858-0wk~18600-0w5~18600.1-0we~18672-0wr~18672.1-0wu~18711-0wj~18711.1-0wc~18779-0~18779.1-0wi~18780-01~18780.1-0wi~1879-0wg~18804-0wv~1882-0wzq~1916-0wb~1960-0wyp~1963-0wd~20595-0wb~20595.1-0wh~21963-0w2~21963.1-0w3~22309-0wk~22309.1-0wb~22315-0wt~22365-0wa~22365.1-0wa~22454-0wk~22454.1-0w5~22708-01~22714-01~22721-01~22741-01~22761-01~22781-01~22801-01~22852-0wd~2322-0wyr~23254.2-0w2~23266.2-0w2~23318.1-0wxg~2397-0wr~24219.2-01~24232.1-0wCp~24428.1-0wx5~24530.2-01~24676.2-0~24679.1-0wm~24817.1-0wt~2495-0wr~25069.1-0wxb~2538-0wyg~25874.2-0w2~26152.2-0w2~26160.3-0w9~26172.2-0w2~26180.1-0wAc~26216.2-0w2~26354.1-0wx5~26612.1-0wx6~26779.2-0w2~26850.2-0w2~26887.2-01~26898.1-0wBb~27000.1-0wx7~2714-0wg~27148.2-0w2~27174.2-0w2~27175.1-0wxr~27296.1-0wo~27439.1-0wxb~27590.2-01~27701.2-01~2784-01~28395.2-0w2~28404.3-0wd~28428.2-0w2~28448.1-0wAi~28588.1-0wxd~2859-0wA6~28710.1-0w3~28868.1-0wx7~2897-0wxl~2903-0wx0~29046.2-01~29081.2-0w2~29092.1-0wAv~2913-0wxc~29206.1-0wxe~2931-0wx3~29335.2-01~29342.1-0wxm~29374.2-0w2~29494.1-0wx7~2960-0wx0~29657.1-0wx7~29741.2-0w2~2975-0wk~29849.2-01~2987-0wxh~30083.2-01~30499.2-01~30526.3-0wd~30571.1-0wzo~30707.1-0wx8~30812.1-0wxf~3096-0wxb~30965.1-0wx8~31168.2-0w2~31208.2-0w2~31457.2-01~31495.2-0w2~3250-0wi~3250.1-0wh~3349-0wi~3349.1-0wa~3604-0wx4~3820-0wys~397-0w5~398-0w2~399-0w7~416-0w4~447-0~463-0w9~464-0wi~466-0~4778-0ws~5367-0wy6~6037-0w2~6037.1-0wc~628-0w3~641-0w2~659-0w7~660-0wyXf~6655-0wxh~673-0w4~680-0~681-0w2~684-0wxm~686-0wCn~696-0~701-0wx5~710-0~715-01~717-0~731-0wm~735-0w7~743-0w6~745-0ws~7708-0wxd~785-01~789-01~790-0~832-0w7~853-01~857-0w2~858-0w5~861-0w5~862-01~882-0w2~896-0wq~914-0w6~916-0wp~9575-0we~23081.1-0wd~23087.1-0wd~23094.1-0wd~23102.1-0wd~23135.1-0wd~23155.1-0wd~23175.1-0wd~23195.1-0wd~23208.1-0w4~23218.1-0wd~23231.1-0w2~23241.1-0wd~23254.1-01~23265.1-0wd~23266.1-01~23287-0we~23318-0wxl~23354-0wAc~23380-0wm~23413-0wu~23430-0wz7~23440-0wxo~23501-0wp~23552-0wx8~23571-0ws~23607-0wq~23694-0wy4~23721-0wx6~23855-0wp~23988-0wi~24017-0wxj~24035-0wxi~24154-0wxo~24210.1-0wd~24219-0~24219.1-01~24232-0wsuwGb~24278-0wu~24374.1-0wd~24428-0wkmwyo~24523-0~24523.1-0wd~24530.1-0w2~24586.1-0wd~24611.1-0w3~24679-0wy4~24817-0wxi~24904-0wi~25027.1-0we~25029.1-0w3~25069-0wlnwxp~25234.1-0wd~25237.1-0w4~25698.1-01~25860.1-0wd~25874.1-01~26147.1-0wd~26152.1-01~26160.2-0wr~26171.1-0wd~26172-01~26172.1-01~26180-0wprwvx1wAjAlwCd~26216-01~26216.1-01~26354-0wkmwye~26448-0wprwxo~26612-0wkmwxi~26758.1-0wd~26779.1-01~26790-0wr~26848.1-0wd~26850.1-01~26885.1-0we~26887-01~26887.1-01~26898-0wqstvwAuB7B9wD4~26917-01~26917.1-0w2~27000-0wkmwy1~27147-0~27147.1-0wd~27148.1-01~27159-0~27159.1-0wd~27174.1-01~27175-0wkmwxv~27296-0wkmwyr~27400-0wn~27439-0wkmwxj~27588.1-0wd~27590-01~27590.1-01~27690.1-01~27699.1-0wd~27701.1-01~28006.1-0wd~28008.1-0w2~28375.1-0we~28395.1-01~28404-0w7~28404.2-0wr~28424.1-0wd~28428-01~28428.1-01~28448-0wqstvwAsAuwC8~28481-01~28481.1-01~28588-0wkmwy8~28710-0wkmwxj~28868-0wkmwxj~29001.1-0wd~29024.1-0w2~29044.1-0wd~29046-0~29046.1-01~29079.1-0wd~29081.1-01~29092-0wprsuwApArwCj~29206-0wjmwxt~29331-0~29331.1-0wd~29335.1-01~29342-0wkmwy0~29369-0~29369.1-0wd~29374.1-01~29466.1-01~29494-0woqwyr~29657-0wkmwxk~29739.1-0wd~29741.1-01~29846.1-0wd~29849.1-0w2~30081.1-0wd~30083.1-01~30497.1-0wd~30499.1-01~30526.2-0ws~30534.1-0wd~30536-01~30536.1-0w2~30571-0wrtux0wArAtwC8~30707-0wkmwya~30812-0wjlwxj~30965-0wkmwxi~31114.1-0wd~31138-01~31138.1-0w2~31166.1-0wd~31168.1-01~31195.1-01~31206.1-0we~31208.1-01~31219-0wqstvwAvB1wBu~31328-0wkmwxr~31449-0~31449.1-0wd~31457.1-01~31469-0wkmwxk~31480-0~31480.1-0wf~31495.1-01~31611-0wlnwxm~31710-0wkmwxh&localTrackOrderByPid=1519-xnxo2xpwy2zmy3wy7zky83wmy9wybnwrycwyetsuyfztygyhvyqwyuyiwypyvwzhx0x2zlznwzsx3wx81x9wxe0xfwxmzizjx1&range=9907m7527&symbolServer=http%3A%2F%2F127.0.0.1%3A3000%2F3gxncssi1fh7pksf0p0j5jjqammrbqlak3zh13a&thread=Uj&transforms=ff-8&v=10

Most of the processes are hidden. For the hidden processes, I don't think the URL needs to store state about which of their local tracks (i.e. threads) are hidden.

┆Issue is synchronized with this Jira Task

@mstange mstange assigned mstange and unassigned mstange Mar 4, 2025
@mstange
Copy link
Contributor Author

mstange commented Mar 4, 2025

I gave this a try but couldn't figure it out. The URL state doesn't have enough information to know which local tracks belong to visible global tracks. It knows the track indexes of hidden global tracks (but not the ones of visible global tracks!), and it stores the hidden local tracks keyed by the PID of the global track - not by track index of the global track! To map the track index of a global track to the right PID, state from the profile is needed. But the URL state needs to be able to round trip without involving the profile state.

I tried to add a separate field called hiddenLocalTracksRelevantPids next to localTrackOrderChangedPids, but I didn't know how to keep its values up-to-date - the hidden global tracks are modified by many different actions, and I think each of these actions would need a new field called pidsForVisibleGlobalTracks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant