diff --git a/content/rust-compiler-performance-survey-2025-results/alternative-linker-wordcloud.png b/content/rust-compiler-performance-survey-2025-results/alternative-linker-wordcloud.png new file mode 100644 index 000000000..c26f86a0e Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/alternative-linker-wordcloud.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/alternative-linker.png b/content/rust-compiler-performance-survey-2025-results/alternative-linker.png new file mode 100644 index 000000000..a54ff3b18 Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/alternative-linker.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/alternative-linker.svg b/content/rust-compiler-performance-survey-2025-results/alternative-linker.svg new file mode 100644 index 000000000..20566d3aa --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/alternative-linker.svg @@ -0,0 +1 @@ +3.1%46.9%65.3%6.6%3.5%moldlldwildOthergold0%20%40%60%80%100%If you use an alternative linker, which one do you use?(total responses = 1154, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/cargo-commands.png b/content/rust-compiler-performance-survey-2025-results/cargo-commands.png new file mode 100644 index 000000000..9ff431091 Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/cargo-commands.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/cargo-commands.svg b/content/rust-compiler-performance-survey-2025-results/cargo-commands.svg new file mode 100644 index 000000000..f8a7cc714 --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/cargo-commands.svg @@ -0,0 +1 @@ +36.98%26.21%11.68%32.30%21.06%20.16%43.02%45.36%15.04%41.19%35.90%20.02%26.91%12.44%9.40%2.32%0%20%40%60%80%100%cargo testcargo clippycargo checkcargo run / cargobuildSeverityAfter every code changeOnly after I have resolved other issuesOnly after I am done (e.g. before committing code)NeverIf you use Cargo, how often do you use the following commands after eachchange to Rust code?(total responses = 2437) \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/charts.js b/content/rust-compiler-performance-survey-2025-results/charts.js new file mode 100644 index 000000000..74df9b0a3 --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/charts.js @@ -0,0 +1,63 @@ + + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("satisfaction")) { Plotly.newPlot( "satisfaction", [{"alignmentgroup":"True","customdata":[["2025",38],["2025",21],["2025",79],["2025",155],["2025",163],["2025",245],["2025",481],["2025",625],["2025",337],["2025",83],["2025",30]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2025","marker":{"color":"#636EFA","pattern":{"shape":""}},"name":"2025","offsetgroup":"2025","orientation":"v","showlegend":true,"text":["1.7%","0.9%","3.5%","6.9%","7.2%","10.9%","21.3%","27.7%","14.9%","3.7%","1.3%"],"textposition":"outside","x":["\u003cspan style='font-size: 1.3em'\u003e0\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e1\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e2\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e3\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e4\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e5\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e6\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e7\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e8\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e9\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e10\u003c\u002fspan\u003e"],"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAADzw+j8AAABAJ8btPwAAAEB0AAxAAAAAIFh4G0AAAACgTeMcQAAAAADStSVAAAAA4LxPNUAAAACADrE7QAAAAIDW3C1AAAAAwGlrDUAAAAAgZUT1Pw=="},"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["\u003cspan style='font-size: 1.3em'\u003e0\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e1\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e2\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e3\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e4\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e5\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e6\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e7\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e8\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e9\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003e10\u003c\u002fspan\u003e"],"tickfont":{"size":9},"tickangle":0},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":50},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":400,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eOverall, how satisfied are you with Rust compilation performance?\u003cbr \u002f\u003e(0 = worst, 10 = best)\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 2257, single answer)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":false,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("limiting-workflows")) { Plotly.newPlot( "limiting-workflows", [{"customdata":[["Big problem for me"],["Big problem for me"],["Big problem for me"],["Big problem for me"],["Big problem for me"],["Big problem for me"],["Big problem for me"],["Big problem for me"],["Big problem for me"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Big problem for me","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"Big problem for me","orientation":"h","showlegend":true,"text":["14.39%","10.99%","24.76%","20.60%","30.93%","18.84%","21.66%","17.27%","10.95%"],"textposition":"inside","x":{"dtype":"f8","bdata":"tEdPLKfHLEAXv9Bm4vwlQKYG9o6pwThA4C0zJPSZNEDvl\u002fV+We8+QFf+Y7dW1zJAQYYl4UapNUASWeNpYkYxQJA65Y865SVA"},"xaxis":"x","y":["cargo check","cargo test","Unoptimized rebuilds","Optimized rebuilds","Workspace rebuilds","Clean unoptimized\u003cbr \u002f\u003ebuilds","Clean optimized\u003cbr \u002f\u003ebuilds","CI builds","Docker builds"],"yaxis":"y","type":"bar"},{"customdata":[["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Could be improved, but does not limit me","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"Could be improved, but does not limit me","orientation":"h","showlegend":true,"text":["44.06%","39.47%","46.43%","44.41%","38.29%","44.65%","40.27%","32.48%","19.32%"],"textposition":"inside","x":{"dtype":"f8","bdata":"QpbI8eIHRkD61qqzfrxDQG7btm3bNkdAxGuE89c0RkAmaleidiVDQASGNadlU0ZANkWfu2UiRECVMDYLqj1AQL1nEr1nUjNA"},"xaxis":"x","y":["cargo check","cargo test","Unoptimized rebuilds","Optimized rebuilds","Workspace rebuilds","Clean unoptimized\u003cbr \u002f\u003ebuilds","Clean optimized\u003cbr \u002f\u003ebuilds","CI builds","Docker builds"],"yaxis":"y","type":"bar"},{"customdata":[["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Not an issue for me at all","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"Not an issue for me at all","orientation":"h","showlegend":true,"text":["38.55%","40.41%","25.49%","27.43%","19.19%","28.32%","30.25%","24.09%","17.69%"],"textposition":"inside","x":{"dtype":"f8","bdata":"YnB3i0BGQ0B65GhO7TNEQLPyE+KsfDlASFK9NIltO0Aw6\u002f2y3i8zQLxRAziRUjxAMB2vGqBAPkBl+iphbBY4QMYacMUasDFA"},"xaxis":"x","y":["cargo check","cargo test","Unoptimized rebuilds","Optimized rebuilds","Workspace rebuilds","Clean unoptimized\u003cbr \u002f\u003ebuilds","Clean optimized\u003cbr \u002f\u003ebuilds","CI builds","Docker builds"],"yaxis":"y","type":"bar"},{"customdata":[["I don't use this workflow"],["I don't use this workflow"],["I don't use this workflow"],["I don't use this workflow"],["I don't use this workflow"],["I don't use this workflow"],["I don't use this workflow"],["I don't use this workflow"],["I don't use this workflow"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"I don't use this workflow","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"I don't use this workflow","orientation":"h","showlegend":true,"text":["3.00%","9.13%","3.33%","7.56%","11.59%","8.18%","7.82%","26.16%","52.04%"],"textposition":"inside","x":{"dtype":"f8","bdata":"7HbCeiv\u002fB0AVU+CQbUEiQFZ+QpyVnwpAPaEaAEs7HkAsUbsStSsnQMdHW4SZXiBAi0izMzZFH0BeS4Ue3Sc6QBtwxRpwBUpA"},"xaxis":"x","y":["cargo check","cargo test","Unoptimized rebuilds","Optimized rebuilds","Workspace rebuilds","Clean unoptimized\u003cbr \u002f\u003ebuilds","Clean optimized\u003cbr \u002f\u003ebuilds","CI builds","Docker builds"],"yaxis":"y","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"fixedrange":true,"range":[0,100],"ticksuffix":"%","showgrid":false},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Docker builds","CI builds","cargo test","cargo check","Clean unoptimized\u003cbr \u002f\u003ebuilds","Clean optimized\u003cbr \u002f\u003ebuilds","Optimized rebuilds","Workspace rebuilds","Unoptimized rebuilds"],"tickangle":0,"fixedrange":true,"ticksuffix":""},"legend":{"title":{"text":"Severity"},"tracegroupgap":0,"orientation":"h","y":-0.05},"title":{"text":"\u003cb\u003eWhich development workflows limit your productivity?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 2490)\u003c\u002fspan\u003e"},"barmode":"relative","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"meta":"matrix-chart","dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("problems")) { Plotly.newPlot( "problems", [{"customdata":[["Big problem for me"],["Big problem for me"],["Big problem for me"],["Big problem for me"],["Big problem for me"],["Big problem for me"],["Big problem for me"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Big problem for me","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"Big problem for me","orientation":"h","showlegend":true,"text":["45.62%","18.25%","28.98%","35.93%","23.09%","22.32%","23.06%"],"textposition":"inside","x":{"dtype":"f8","bdata":"qIWLcZvPRkAwQAWTFEAyQM1EQj5N+jxAtNpZ7az2QUDpsq\u002fBKRY3QMFawtcMUzZAnMqZlsgON0A="},"xaxis":"x","y":["Waiting for a\u003cbr \u002f\u003erebuild after making\u003cbr \u002f\u003ea small change","Waiting for CI\u003cbr \u002f\u003eworkflows that build\u003cbr \u002f\u003eRust code","Waiting for an IDE\u003cbr \u002f\u003eto show me inline\u003cbr \u002f\u003eerror\u002fwarning\u003cbr \u002f\u003eannotations","cargo and my IDE\u003cbr \u002f\u003eblocking each other","cargo check and\u003cbr \u002f\u003ecargo build not\u003cbr \u002f\u003esharing compilation\u003cbr \u002f\u003ecache","cargo check and\u003cbr \u002f\u003ecargo clippy not\u003cbr \u002f\u003esharing compilation\u003cbr \u002f\u003ecache","cargo rebuilding\u003cbr \u002f\u003eeverything from\u003cbr \u002f\u003escratch and I do not\u003cbr \u002f\u003eunderstand why"],"yaxis":"y","type":"bar"},{"customdata":[["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"],["Could be improved, but does not limit me"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Could be improved, but does not limit me","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"Could be improved, but does not limit me","orientation":"h","showlegend":true,"text":["39.57%","38.13%","43.90%","37.42%","42.66%","39.63%","27.54%"],"textposition":"inside","x":{"dtype":"f8","bdata":"bR8HBXzIQ0DBJ1nACRFDQNDdSUog80VAntXOame1QkAggcYOelRFQNePCOLo0ENAF5gG7m6LO0A="},"xaxis":"x","y":["Waiting for a\u003cbr \u002f\u003erebuild after making\u003cbr \u002f\u003ea small change","Waiting for CI\u003cbr \u002f\u003eworkflows that build\u003cbr \u002f\u003eRust code","Waiting for an IDE\u003cbr \u002f\u003eto show me inline\u003cbr \u002f\u003eerror\u002fwarning\u003cbr \u002f\u003eannotations","cargo and my IDE\u003cbr \u002f\u003eblocking each other","cargo check and\u003cbr \u002f\u003ecargo build not\u003cbr \u002f\u003esharing compilation\u003cbr \u002f\u003ecache","cargo check and\u003cbr \u002f\u003ecargo clippy not\u003cbr \u002f\u003esharing compilation\u003cbr \u002f\u003ecache","cargo rebuilding\u003cbr \u002f\u003eeverything from\u003cbr \u002f\u003escratch and I do not\u003cbr \u002f\u003eunderstand why"],"yaxis":"y","type":"bar"},{"customdata":[["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"],["Not an issue for me at all"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Not an issue for me at all","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"Not an issue for me at all","orientation":"h","showlegend":true,"text":["14.81%","43.62%","27.12%","26.66%","34.25%","38.04%","49.40%"],"textposition":"inside","x":{"dtype":"f8","bdata":"rmu1JaKfLUAmOCT2685FQJT\u002fKS1yHztAXJ+uT9enOkBrpWEQcSBBQMlCFrKQBUNAps6vPeSySEA="},"xaxis":"x","y":["Waiting for a\u003cbr \u002f\u003erebuild after making\u003cbr \u002f\u003ea small change","Waiting for CI\u003cbr \u002f\u003eworkflows that build\u003cbr \u002f\u003eRust code","Waiting for an IDE\u003cbr \u002f\u003eto show me inline\u003cbr \u002f\u003eerror\u002fwarning\u003cbr \u002f\u003eannotations","cargo and my IDE\u003cbr \u002f\u003eblocking each other","cargo check and\u003cbr \u002f\u003ecargo build not\u003cbr \u002f\u003esharing compilation\u003cbr \u002f\u003ecache","cargo check and\u003cbr \u002f\u003ecargo clippy not\u003cbr \u002f\u003esharing compilation\u003cbr \u002f\u003ecache","cargo rebuilding\u003cbr \u002f\u003eeverything from\u003cbr \u002f\u003escratch and I do not\u003cbr \u002f\u003eunderstand why"],"yaxis":"y","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"fixedrange":true,"range":[0,100],"ticksuffix":"%","showgrid":false},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["cargo rebuilding\u003cbr \u002f\u003eeverything from\u003cbr \u002f\u003escratch and I do not\u003cbr \u002f\u003eunderstand why","Waiting for CI\u003cbr \u002f\u003eworkflows that build\u003cbr \u002f\u003eRust code","cargo check and\u003cbr \u002f\u003ecargo clippy not\u003cbr \u002f\u003esharing compilation\u003cbr \u002f\u003ecache","cargo check and\u003cbr \u002f\u003ecargo build not\u003cbr \u002f\u003esharing compilation\u003cbr \u002f\u003ecache","Waiting for an IDE\u003cbr \u002f\u003eto show me inline\u003cbr \u002f\u003eerror\u002fwarning\u003cbr \u002f\u003eannotations","cargo and my IDE\u003cbr \u002f\u003eblocking each other","Waiting for a\u003cbr \u002f\u003erebuild after making\u003cbr \u002f\u003ea small change"],"tickangle":0,"fixedrange":true,"ticksuffix":""},"legend":{"title":{"text":"Severity"},"tracegroupgap":0,"orientation":"h","y":-0.05},"title":{"text":"\u003cb\u003eWhich of the following problems do you most struggle with?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 2463)\u003c\u002fspan\u003e"},"barmode":"relative","height":650,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"meta":"matrix-chart","dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("rebuild-wait-time")) { Plotly.newPlot( "rebuild-wait-time", [{"alignmentgroup":"True","customdata":[["2025",61],["2025",493],["2025",552],["2025",549],["2025",297],["2025",383],["2025",110]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2025","marker":{"color":"#636EFA","pattern":{"shape":""}},"name":"2025","offsetgroup":"2025","orientation":"v","showlegend":true,"text":["2.5%","20.2%","22.6%","22.5%","12.1%","15.7%","4.5%"],"textposition":"outside","x":["\u003cspan style='font-size: 1.3em'\u003eLess than a second\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eBetween 1 and 5 seconds\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eBetween 5 and 10 seconds\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eBetween 10 and 30 seconds\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eBetween 30 seconds and 1\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003eminute\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eBetween 1 and 5 minutes\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eMore than 5 minutes\u003c\u002fspan\u003e"],"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAgIf1A0AAAACg4Sk0QAAAAMChkzZAAAAAgDh0NkAAAAAAY0soQAAAAGBJVC9AAAAAAPT+EUA="},"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["\u003cspan style='font-size: 1.3em'\u003eLess than a second\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eBetween 1 and 5 seconds\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eBetween 5 and 10 seconds\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eBetween 10 and 30 seconds\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eBetween 30 seconds and 1\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003eminute\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eBetween 1 and 5 minutes\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eMore than 5 minutes\u003c\u002fspan\u003e"],"tickfont":{"size":9},"tickangle":30},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":50},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":400,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eHow long do you need to wait for the compiler to rebuild your code after\u003cbr \u002f\u003emaking a change?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 2445, single answer)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":false,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("rebuild-wait-time-code-size")) { Plotly.newPlot( "rebuild-wait-time-code-size", [{"hovertemplate":"Rebuild time=\u003c1s\u003cbr\u003eCodebase size=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003c1s","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"\u003c1s","orientation":"v","showlegend":true,"textposition":"auto","x":["101-500 thousand lines","11-50 thousand lines","2-10 thousand lines","51-100 thousand lines","Less than 2 thousand lines","More than 500 thousand lines of code"],"xaxis":"x","y":{"dtype":"f8","bdata":"reDwhRQB2z9dEj6PSl3yP5dbY7tLWg9AK3US1wwQ5D+x4FLZ3nUYQE\u002fsxE7sxO4\u002f"},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=1-5s\u003cbr\u003eCodebase size=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5s","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"1-5s","orientation":"v","showlegend":true,"textposition":"auto","x":["101-500 thousand lines","11-50 thousand lines","2-10 thousand lines","51-100 thousand lines","Less than 2 thousand lines","More than 500 thousand lines of code"],"xaxis":"x","y":{"dtype":"f8","bdata":"bIy206zgIEDN625ilMwzQCSXW2O7SzpAeVet2I4yJ0Aq27sO6MY8QDuxEzuxExdA"},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=5-10s\u003cbr\u003eCodebase size=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"5-10s","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"5-10s","orientation":"v","showlegend":true,"textposition":"auto","x":["101-500 thousand lines","11-50 thousand lines","2-10 thousand lines","51-100 thousand lines","Less than 2 thousand lines","More than 500 thousand lines of code"],"xaxis":"x","y":{"dtype":"f8","bdata":"nUtimfp4KEAaeAHccRo4QEDWJrjRSDlA+3mYPs5BNkAC3Zinj1Y7QDuxEzuxExdA"},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=10-30s\u003cbr\u003eCodebase size=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"10-30s","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"10-30s","orientation":"v","showlegend":true,"textposition":"auto","x":["101-500 thousand lines","11-50 thousand lines","2-10 thousand lines","51-100 thousand lines","Less than 2 thousand lines","More than 500 thousand lines of code"],"xaxis":"x","y":{"dtype":"f8","bdata":"JZapjwe9OUDUrkTtStQ6QM0RH2BBOjRA+3mYPs5BNkBwqWzvOqAxQIqd2ImdWDBA"},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=30s-1m\u003cbr\u003eCodebase size=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"30s-1m","marker":{"color":"#FFA15A","pattern":{"shape":""}},"name":"30s-1m","orientation":"v","showlegend":true,"textposition":"auto","x":["101-500 thousand lines","11-50 thousand lines","2-10 thousand lines","51-100 thousand lines","Less than 2 thousand lines","More than 500 thousand lines of code"],"xaxis":"x","y":{"dtype":"f8","bdata":"fCFFwMZoM0DRf8Sx\u002fNAnQJWTiLYUQCZAdRLXDBAUKUDZ3nVAN+YZQLETO7ETOzNA"},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=1-5m\u003cbr\u003eCodebase size=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5m","marker":{"color":"#19d3f3","pattern":{"shape":""}},"name":"1-5m","orientation":"v","showlegend":true,"textposition":"auto","x":["101-500 thousand lines","11-50 thousand lines","2-10 thousand lines","51-100 thousand lines","Less than 2 thousand lines","More than 500 thousand lines of code"],"xaxis":"x","y":{"dtype":"f8","bdata":"uO5PziWxPECKUTKvu4kpQOoCIXblfSVAzH4epo9zOEBMZXvXAd0kQCd2Yid24jtA"},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=\u003e5m\u003cbr\u003eCodebase size=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003e5m","marker":{"color":"#FF6692","pattern":{"shape":""}},"name":"\u003e5m","orientation":"v","showlegend":true,"textposition":"auto","x":["101-500 thousand lines","11-50 thousand lines","2-10 thousand lines","51-100 thousand lines","Less than 2 thousand lines","More than 500 thousand lines of code"],"xaxis":"x","y":{"dtype":"f8","bdata":"gqh0ZM9AFECMG93W74sLQOlQ6rRXNwNAdRLXDBAUGUDZ3nVAN+YJQJ7YiZ3YCThA"},"yaxis":"y","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":"Codebase size"},"categoryorder":"array","categoryarray":["Less than 2 thousand lines","2-10 thousand lines","11-50 thousand lines","51-100 thousand lines","101-500 thousand lines","More than 500 thousand lines of code"]},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percentage (%)"}},"legend":{"title":{"text":"Rebuild time"},"tracegroupgap":0},"title":{"text":"\u003cb\u003eAverage rebuild time based on project size (%)\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003eThe percentages are relative to each individual group on the X axis\u003c\u002fspan\u003e"},"barmode":"relative","height":600}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("rebuild-wait-time-dep-count")) { Plotly.newPlot( "rebuild-wait-time-dep-count", [{"hovertemplate":"Rebuild time=\u003c1s\u003cbr\u003ecode-size=Less than 2 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003c1s","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"\u003c1s","orientation":"v","showlegend":true,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","301-500 dependencies","51-100 dependencies","No dependencies"],"xaxis":"x4","y":{"dtype":"f8","bdata":"0FGBL65+IEAWspCFLGQRQI7jOI7jOAZAq6qqqqqqGkAvuuiiiy4SQI7jOI7jOEZA"},"yaxis":"y4","type":"bar"},{"hovertemplate":"Rebuild time=1-5s\u003cbr\u003ecode-size=Less than 2 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5s","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"1-5s","orientation":"v","showlegend":true,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","51-100 dependencies","More than 500 dependencies","No dependencies"],"xaxis":"x4","y":{"dtype":"f8","bdata":"0FGBL65+QEDf9KY3velHQBzHcRzH8T9ATjbZZJNNLkBGF1100UU7QKuqqqqqqjBAjuM4juM4NkA="},"yaxis":"y4","type":"bar"},{"hovertemplate":"Rebuild time=5-10s\u003cbr\u003ecode-size=Less than 2 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"5-10s","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"5-10s","orientation":"v","showlegend":true,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies","No dependencies"],"xaxis":"x4","y":{"dtype":"f8","bdata":"KJFp2G6WM0AhC1nIQhY6QKuqqqqqqkBATjbZZJNNPkCrqqqqqqpKQEYXXXTRRTtAq6qqqqqqMECO4ziO4zgmQA=="},"yaxis":"y4","type":"bar"},{"hovertemplate":"Rebuild time=10-30s\u003cbr\u003ecode-size=Less than 2 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"10-30s","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"10-30s","orientation":"v","showlegend":true,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies","No dependencies"],"xaxis":"x4","y":{"dtype":"f8","bdata":"0FGBL65+MEAWspCFLGQRQBzHcRzHcTNAPvjggw8+OECrqqqqqqoqQEYXXXTRRTtAq6qqqqqqMECO4ziO4zgmQA=="},"yaxis":"y4","type":"bar"},{"hovertemplate":"Rebuild time=30s-1m\u003cbr\u003ecode-size=Less than 2 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"30s-1m","marker":{"color":"#FFA15A","pattern":{"shape":""}},"name":"30s-1m","orientation":"v","showlegend":true,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","No dependencies"],"xaxis":"x4","y":{"dtype":"f8","bdata":"0FGBL65+EEAWspCFLGQhQI7jOI7jOBZATjbZZJNNLkCrqqqqqqoaQC+66KKLLhJAjuM4juM4JkA="},"yaxis":"y4","type":"bar"},{"hovertemplate":"Rebuild time=1-5m\u003cbr\u003ecode-size=Less than 2 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5m","marker":{"color":"#19d3f3","pattern":{"shape":""}},"name":"1-5m","orientation":"v","showlegend":true,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x4","y":{"dtype":"f8","bdata":"8yQyDdvNKkAWspCFLGQhQKuqqqqqqhBAPvjggw8+KEAAAAAAAAA0QC+66KKLLiJAq6qqqqqqQEA="},"yaxis":"y4","type":"bar"},{"hovertemplate":"Rebuild time=\u003e5m\u003cbr\u003ecode-size=Less than 2 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003e5m","marker":{"color":"#FF6692","pattern":{"shape":""}},"name":"\u003e5m","orientation":"v","showlegend":true,"textposition":"auto","x":["1-10 dependencies","11-50 dependencies","201-300 dependencies","More than 500 dependencies"],"xaxis":"x4","y":{"dtype":"f8","bdata":"RaZhu1meFECO4ziO4zgGQD744IMPPghAq6qqqqqqMEA="},"yaxis":"y4","type":"bar"},{"hovertemplate":"Rebuild time=\u003c1s\u003cbr\u003ecode-size=2-10 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003c1s","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"\u003c1s","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","No dependencies"],"xaxis":"x5","y":{"dtype":"f8","bdata":"IQtZyEIWGkDirPyEOCsPQMTkCmJyBRFAp6wpa8qa8j9SGZVRGZXxPyVJkiRJkgxAAAAAAAAATkA="},"yaxis":"y5","type":"bar"},{"hovertemplate":"Rebuild time=1-5s\u003cbr\u003ecode-size=2-10 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5s","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"1-5s","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies","No dependencies"],"xaxis":"x5","y":{"dtype":"f8","bdata":"9aY3velNQEAlSZIkSZI8QDG5gphcQThADPqCvqAvQ0Dnaq7maq4yQJIkSZIkiTRAchzHcRzHMUAAAAAAAAA0QA=="},"yaxis":"y5","type":"bar"},{"hovertemplate":"Rebuild time=5-10s\u003cbr\u003ecode-size=2-10 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"5-10s","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"5-10s","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies","No dependencies"],"xaxis":"x5","y":{"dtype":"f8","bdata":"IQtZyEIWOkADe8fUwN49QIOYXEFMrjhAcUfcEXfEM0DkPd7jPd4\u002fQG7btm3bNjdAjuM4juM4NkAAAAAAAAA0QA=="},"yaxis":"y5","type":"bar"},{"hovertemplate":"Rebuild time=10-30s\u003cbr\u003ecode-size=2-10 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"10-30s","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"10-30s","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x5","y":{"dtype":"f8","bdata":"7cBcOzDXMkDLT4iz8hM2QGejvrNR3zFAp6wpa8qaMkDnaq7maq4yQCVJkiRJkjxAjuM4juM4NkA="},"yaxis":"y5","type":"bar"},{"hovertemplate":"Rebuild time=30s-1m\u003cbr\u003ecode-size=2-10 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"30s-1m","marker":{"color":"#FFA15A","pattern":{"shape":""}},"name":"30s-1m","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x5","y":{"dtype":"f8","bdata":"c+3AXDswF0Avuuiiiy4iQHIFMbmCmDBA+oK+oC\u002foG0CmX\u002fqlX\u002folQCVJkiRJEiBAAAAAAAAANEA="},"yaxis":"y5","type":"bar"},{"hovertemplate":"Rebuild time=1-5m\u003cbr\u003ecode-size=2-10 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5m","marker":{"color":"#19d3f3","pattern":{"shape":""}},"name":"1-5m","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x5","y":{"dtype":"f8","bdata":"FrKQhSxkIUDsHVMDe8cUQFLf2ajvbCRAPOKOuCPuJEBSGZVRGZUxQAAAAAAAAClAq6qqqqqqKkA="},"yaxis":"y5","type":"bar"},{"hovertemplate":"Rebuild time=\u003e5m\u003cbr\u003ecode-size=2-10 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003e5m","marker":{"color":"#FF6692","pattern":{"shape":""}},"name":"\u003e5m","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x5","y":{"dtype":"f8","bdata":"c+3AXDsw9z\u002fsHVMDe8f0P8TkCmJyBQFAp6wpa8qaEkBSGZVRGZXxPyVJkiRJkgxAchzHcRzHEUA="},"yaxis":"y5","type":"bar"},{"hovertemplate":"Rebuild time=\u003c1s\u003cbr\u003ecode-size=11-50 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003c1s","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"\u003c1s","orientation":"v","showlegend":false,"textposition":"auto","x":["11-50 dependencies","201-300 dependencies","301-500 dependencies"],"xaxis":"x6","y":{"dtype":"f8","bdata":"chzHcRzHAUAAAAAAAAAOQCVJkiRJkuw\u002f"},"yaxis":"y6","type":"bar"},{"hovertemplate":"Rebuild time=1-5s\u003cbr\u003ecode-size=11-50 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5s","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"1-5s","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies","No dependencies"],"xaxis":"x6","y":{"dtype":"f8","bdata":"OY7jOI7jPEADmRQvkEk5QI7jOI7jODZAAAAAAABAMEAlSZIkSZIsQK973ete9zpAmHRqHuSuH0CrqqqqqqpQQA=="},"yaxis":"y6","type":"bar"},{"hovertemplate":"Rebuild time=5-10s\u003cbr\u003ecode-size=11-50 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"5-10s","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"5-10s","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies","No dependencies"],"xaxis":"x6","y":{"dtype":"f8","bdata":"juM4juM4NkDUCMs9jbA0QBzHcRzHcThAAAAAAACANkBu27Zt23Y9QDrMYQ5zmDdAzYPc9bPFNkCrqqqqqqpAQA=="},"yaxis":"y6","type":"bar"},{"hovertemplate":"Rebuild time=10-30s\u003cbr\u003ecode-size=11-50 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"10-30s","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"10-30s","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x6","y":{"dtype":"f8","bdata":"OY7jOI7jPEAaYbmnEZY7QI7jOI7jODZAAAAAAAAAPkDbtm3btq07QK973ete9zpA8yB3\u002fWyxPkA="},"yaxis":"y6","type":"bar"},{"hovertemplate":"Rebuild time=30s-1m\u003cbr\u003ecode-size=11-50 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"30s-1m","marker":{"color":"#FFA15A","pattern":{"shape":""}},"name":"30s-1m","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x6","y":{"dtype":"f8","bdata":"A5kUL5BJKUCrqqqqqqoqQAAAAAAAQDBASZIkSZKkI0Ag\u002fehHP\u002fohQJh0ah7kri9A"},"yaxis":"y6","type":"bar"},{"hovertemplate":"Rebuild time=1-5m\u003cbr\u003ecode-size=11-50 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5m","marker":{"color":"#19d3f3","pattern":{"shape":""}},"name":"1-5m","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x6","y":{"dtype":"f8","bdata":"AAAAAAAANEDUCMs9jbAkQFVVVVVVVSdAAAAAAAAAJEAAAAAAAAApQAxc4AIXuChA8Y0oMOnUMEA="},"yaxis":"y6","type":"bar"},{"hovertemplate":"Rebuild time=\u003e5m\u003cbr\u003ecode-size=11-50 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003e5m","marker":{"color":"#FF6692","pattern":{"shape":""}},"name":"\u003e5m","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x6","y":{"dtype":"f8","bdata":"GmG5pxGWC0DHcRzHcRwPQAAAAAAAAPQ\u002f27Zt27ZtFUAg\u002fehHP\u002frxP3LXzxYrwxdA"},"yaxis":"y6","type":"bar"},{"hovertemplate":"Rebuild time=\u003c1s\u003cbr\u003ecode-size=51-100 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003c1s","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"\u003c1s","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","201-300 dependencies"],"xaxis":"x","y":{"dtype":"f8","bdata":"2FBeQ3kNBUAAAAAAAAAJQA=="},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=1-5s\u003cbr\u003ecode-size=51-100 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5s","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"1-5s","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAAAAAKUC9hvIaymsyQAAAAAAAADJAAAAAAAAAKUAhC1nIQhYaQPqCvqAv6CtAJUmSJEmSHEA="},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=5-10s\u003cbr\u003ecode-size=51-100 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"5-10s","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"5-10s","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies","No dependencies"],"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAAAAAOUAor6G8hvI8QAAAAAAAADRAAAAAAAAAKUCc3vSmN701QBJ3xB1xRzBAorE+NNaHOkAAAAAAAABZQA=="},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=10-30s\u003cbr\u003ecode-size=51-100 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"10-30s","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"10-30s","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAAAAAOUDYUF5DeQ0VQAAAAAAAADhAAAAAAAAAOUD1pje96U1AQGVNWVPWlDlA27Zt27ZtNUA="},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=30s-1m\u003cbr\u003ecode-size=51-100 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"30s-1m","marker":{"color":"#FFA15A","pattern":{"shape":""}},"name":"30s-1m","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAAAAAOUDzGsprKK83QAAAAAAAACRAAAAAAADgNUAhC1nIQhYaQNAX9AV9QSdAmFPwcgpeIkA="},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=1-5m\u003cbr\u003ecode-size=51-100 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5m","marker":{"color":"#19d3f3","pattern":{"shape":""}},"name":"1-5m","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAAAAAKUBDeQ3lNZQvQAAAAAAAADZAAAAAAADAMkCnN73pTW8+QI+4I+6IOz5AHxrrQ2N9OEA="},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=\u003e5m\u003cbr\u003ecode-size=51-100 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003e5m","marker":{"color":"#FF6692","pattern":{"shape":""}},"name":"\u003e5m","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x","y":{"dtype":"f8","bdata":"2FBeQ3kNFUAAAAAAAAAYQAAAAAAAABlAFrKQhSxkAUCnrClrypoCQJ2Cl1PwciZA"},"yaxis":"y","type":"bar"},{"hovertemplate":"Rebuild time=\u003c1s\u003cbr\u003ecode-size=101-500 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003c1s","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"\u003c1s","orientation":"v","showlegend":false,"textposition":"auto","x":["More than 500 dependencies"],"xaxis":"x2","y":{"dtype":"f8","bdata":"T+zETuzE7j8="},"yaxis":"y2","type":"bar"},{"hovertemplate":"Rebuild time=1-5s\u003cbr\u003ecode-size=101-500 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5s","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"1-5s","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x2","y":{"dtype":"f8","bdata":"E9pLaC+hLUAAAAAAAAAUQPWdjfrORiVAIQtZyEIWKkDFTuzETuwaQA=="},"yaxis":"y2","type":"bar"},{"hovertemplate":"Rebuild time=5-10s\u003cbr\u003ecode-size=101-500 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"5-10s","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"5-10s","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x2","y":{"dtype":"f8","bdata":"TGgvob2EMkBP7MRO7MQuQAAAAAAAAC5AVxCTK4jJLUAWspCFLGQhQLETO7ETOyNA"},"yaxis":"y2","type":"bar"},{"hovertemplate":"Rebuild time=10-30s\u003cbr\u003ecode-size=101-500 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"10-30s","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"10-30s","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x2","y":{"dtype":"f8","bdata":"E9pLaC+hLUBP7MRO7MQ+QAAAAAAAAD5Av7NR39moO0AWspCFLGQxQCd2Yid24jtA"},"yaxis":"y2","type":"bar"},{"hovertemplate":"Rebuild time=30s-1m\u003cbr\u003ecode-size=101-500 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"30s-1m","marker":{"color":"#FFA15A","pattern":{"shape":""}},"name":"30s-1m","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x2","y":{"dtype":"f8","bdata":"0V5CewntOUBP7MRO7MQuQAAAAAAAADRAVxCTK4jJLUCc3vSmN701QBQ7sRM7MTRA"},"yaxis":"y2","type":"bar"},{"hovertemplate":"Rebuild time=1-5m\u003cbr\u003ecode-size=101-500 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5m","marker":{"color":"#19d3f3","pattern":{"shape":""}},"name":"1-5m","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x2","y":{"dtype":"f8","bdata":"AAAAAAAASUBMaC+hvYQyQLETO7ETO0NAAAAAAAAANEC\u002fs1Hf2ag7QBaykIUsZEFAT+zETuzEPkA="},"yaxis":"y2","type":"bar"},{"hovertemplate":"Rebuild time=\u003e5m\u003cbr\u003ecode-size=101-500 thousand lines\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003e5m","marker":{"color":"#FF6692","pattern":{"shape":""}},"name":"\u003e5m","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x2","y":{"dtype":"f8","bdata":"AAAAAAAASUAT2ktoL6EdQAAAAAAAACRAxOQKYnIFEUAWspCFLGQRQE\u002fsxE7sxA5A"},"yaxis":"y2","type":"bar"},{"hovertemplate":"Rebuild time=\u003c1s\u003cbr\u003ecode-size=More than 500 thousand lines of code\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003c1s","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"\u003c1s","orientation":"v","showlegend":false,"textposition":"auto","x":["51-100 dependencies"],"xaxis":"x3","y":{"dtype":"f8","bdata":"AAAAAAAAKUA="},"yaxis":"y3","type":"bar"},{"hovertemplate":"Rebuild time=1-5s\u003cbr\u003ecode-size=More than 500 thousand lines of code\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5s","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"1-5s","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x3","y":{"dtype":"f8","bdata":"q6qqqqqqQECO4ziO4zgmQCVJkiRJkhxAAAAAAAAAKUBfX19fX18PQA=="},"yaxis":"y3","type":"bar"},{"hovertemplate":"Rebuild time=5-10s\u003cbr\u003ecode-size=More than 500 thousand lines of code\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"5-10s","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"5-10s","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x3","y":{"dtype":"f8","bdata":"juM4juM4JkBP7MRO7MQeQCVJkiRJkhxAAAAAAAAAOUBfX19fX1\u002f\u002fPw=="},"yaxis":"y3","type":"bar"},{"hovertemplate":"Rebuild time=10-30s\u003cbr\u003ecode-size=More than 500 thousand lines of code\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"10-30s","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"10-30s","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","201-300 dependencies","301-500 dependencies","More than 500 dependencies"],"xaxis":"x3","y":{"dtype":"f8","bdata":"juM4juM4NkBP7MRO7MQuQCVJkiRJkixAkpGRkZGRNUA="},"yaxis":"y3","type":"bar"},{"hovertemplate":"Rebuild time=30s-1m\u003cbr\u003ecode-size=More than 500 thousand lines of code\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"30s-1m","marker":{"color":"#FFA15A","pattern":{"shape":""}},"name":"30s-1m","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x3","y":{"dtype":"f8","bdata":"juM4juM4NkBP7MRO7MQuQCVJkiRJkjxAAAAAAADAQkCmpaWlpaUxQA=="},"yaxis":"y3","type":"bar"},{"hovertemplate":"Rebuild time=1-5m\u003cbr\u003ecode-size=More than 500 thousand lines of code\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"1-5m","marker":{"color":"#19d3f3","pattern":{"shape":""}},"name":"1-5m","orientation":"v","showlegend":false,"textposition":"auto","x":["1-10 dependencies","101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","More than 500 dependencies"],"xaxis":"x3","y":{"dtype":"f8","bdata":"q6qqqqqqUECO4ziO4zg2QAAAAAAAAERAO7ETO7ETR0AlSZIkSZI8QH19fX19fTlA"},"yaxis":"y3","type":"bar"},{"hovertemplate":"Rebuild time=\u003e5m\u003cbr\u003ecode-size=More than 500 thousand lines of code\u003cbr\u003e=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"\u003e5m","marker":{"color":"#FF6692","pattern":{"shape":""}},"name":"\u003e5m","orientation":"v","showlegend":false,"textposition":"auto","x":["101-200 dependencies","11-50 dependencies","201-300 dependencies","301-500 dependencies","51-100 dependencies","More than 500 dependencies"],"xaxis":"x3","y":{"dtype":"f8","bdata":"juM4juM4JkAAAAAAAABOQE\u002fsxE7sxC5AJUmSJEmSLEAAAAAAAAApQGlpaWlpaT1A"},"yaxis":"y3","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,0.3],"title":{"text":""},"categoryorder":"array","categoryarray":["No dependencies","1-10 dependencies","11-50 dependencies","51-100 dependencies","101-200 dependencies","201-300 dependencies","301-500 dependencies","More than 500 dependencies"]},"yaxis":{"anchor":"x","domain":[0.0,0.46499999999999997],"title":{"text":"Percentage (%)"}},"xaxis2":{"anchor":"y2","domain":[0.35,0.6499999999999999],"matches":"x","title":{"text":""},"categoryorder":"array","categoryarray":["No dependencies","1-10 dependencies","11-50 dependencies","51-100 dependencies","101-200 dependencies","201-300 dependencies","301-500 dependencies","More than 500 dependencies"]},"yaxis2":{"anchor":"x2","domain":[0.0,0.46499999999999997],"matches":"y","showticklabels":false},"xaxis3":{"anchor":"y3","domain":[0.7,1.0],"matches":"x","title":{"text":""},"categoryorder":"array","categoryarray":["No dependencies","1-10 dependencies","11-50 dependencies","51-100 dependencies","101-200 dependencies","201-300 dependencies","301-500 dependencies","More than 500 dependencies"]},"yaxis3":{"anchor":"x3","domain":[0.0,0.46499999999999997],"matches":"y","showticklabels":false},"xaxis4":{"anchor":"y4","domain":[0.0,0.3],"matches":"x","showticklabels":false},"yaxis4":{"anchor":"x4","domain":[0.5349999999999999,0.9999999999999999],"matches":"y","title":{"text":"Percentage (%)"}},"xaxis5":{"anchor":"y5","domain":[0.35,0.6499999999999999],"matches":"x","showticklabels":false},"yaxis5":{"anchor":"x5","domain":[0.5349999999999999,0.9999999999999999],"matches":"y","showticklabels":false},"xaxis6":{"anchor":"y6","domain":[0.7,1.0],"matches":"x","showticklabels":false},"yaxis6":{"anchor":"x6","domain":[0.5349999999999999,0.9999999999999999],"matches":"y","showticklabels":false},"annotations":[{"font":{},"showarrow":false,"text":"51-100 thousand lines","x":0.15,"xanchor":"center","xref":"paper","y":0.46499999999999997,"yanchor":"bottom","yref":"paper"},{"font":{},"showarrow":false,"text":"101-500 thousand lines","x":0.49999999999999994,"xanchor":"center","xref":"paper","y":0.46499999999999997,"yanchor":"bottom","yref":"paper"},{"font":{},"showarrow":false,"text":"More than 500 thousand lines of code","x":0.85,"xanchor":"center","xref":"paper","y":0.46499999999999997,"yanchor":"bottom","yref":"paper"},{"font":{},"showarrow":false,"text":"Less than 2 thousand lines","x":0.15,"xanchor":"center","xref":"paper","y":0.9999999999999999,"yanchor":"bottom","yref":"paper"},{"font":{},"showarrow":false,"text":"2-10 thousand lines","x":0.49999999999999994,"xanchor":"center","xref":"paper","y":0.9999999999999999,"yanchor":"bottom","yref":"paper"},{"font":{},"showarrow":false,"text":"11-50 thousand lines","x":0.85,"xanchor":"center","xref":"paper","y":0.9999999999999999,"yanchor":"bottom","yref":"paper"}],"legend":{"title":{"text":"Rebuild time"},"tracegroupgap":0},"title":{"text":"\u003cb\u003eAverage rebuild time based on project size and dependency count (%)\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003eThe percentages are relative to each individual group on the X axis\u003c\u002fspan\u003e"},"barmode":"relative","height":800}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("cargo-commands")) { Plotly.newPlot( "cargo-commands", [{"customdata":[["After every code change"],["After every code change"],["After every code change"],["After every code change"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"After every code change","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"After every code change","orientation":"h","showlegend":true,"text":["36.98%","26.21%","11.68%","32.30%"],"textposition":"inside","x":{"dtype":"f8","bdata":"Y6hqk859QkBWGhiXkzY6QFGtsy+iWidAAC2iJv8lQEA="},"xaxis":"x","y":["cargo check","cargo clippy","cargo test","cargo run \u002f cargo\u003cbr \u002f\u003ebuild"],"yaxis":"y","type":"bar"},{"customdata":[["Only after I have resolved other issues"],["Only after I have resolved other issues"],["Only after I have resolved other issues"],["Only after I have resolved other issues"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Only after I have resolved other issues","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"Only after I have resolved other issues","orientation":"h","showlegend":true,"text":["21.06%","20.16%","43.02%","45.36%"],"textposition":"inside","x":{"dtype":"f8","bdata":"DFVt0rkPNUCb8PIwWSg0QMsW50TqgkVALikNc6OtRkA="},"xaxis":"x","y":["cargo check","cargo clippy","cargo test","cargo run \u002f cargo\u003cbr \u002f\u003ebuild"],"yaxis":"y","type":"bar"},{"customdata":[["Only after I am done (e.g. before committing code)"],["Only after I am done (e.g. before committing code)"],["Only after I am done (e.g. before committing code)"],["Only after I am done (e.g. before committing code)"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Only after I am done (e.g. before committing code)","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"Only after I am done (e.g. before committing code)","orientation":"h","showlegend":true,"text":["15.04%","41.19%","35.90%","20.02%"],"textposition":"inside","x":{"dtype":"f8","bdata":"WzCcLHcWLkDasZ9g1pdEQKT5g41H80FA0XyuP14GNEA="},"xaxis":"x","y":["cargo check","cargo clippy","cargo test","cargo run \u002f cargo\u003cbr \u002f\u003ebuild"],"yaxis":"y","type":"bar"},{"customdata":[["Never"],["Never"],["Never"],["Never"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Never","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"Never","orientation":"h","showlegend":true,"text":["26.91%","12.44%","9.40%","2.32%"],"textposition":"inside","x":{"dtype":"f8","bdata":"AkJvcG3pOkC5ImvtzOIoQPYQoIaWzCJAjbaWZ+SSAkA="},"xaxis":"x","y":["cargo check","cargo clippy","cargo test","cargo run \u002f cargo\u003cbr \u002f\u003ebuild"],"yaxis":"y","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"fixedrange":true,"range":[0,100],"ticksuffix":"%","showgrid":false},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["cargo test","cargo clippy","cargo check","cargo run \u002f cargo\u003cbr \u002f\u003ebuild"],"tickangle":0,"fixedrange":true,"ticksuffix":""},"legend":{"title":{"text":"Severity"},"tracegroupgap":0,"orientation":"h","y":-0.05},"title":{"text":"\u003cb\u003eIf you use Cargo, how often do you use the following commands after each\u003cbr \u002f\u003echange to Rust code?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 2437)\u003c\u002fspan\u003e"},"barmode":"relative","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"meta":"matrix-chart","dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("debugger")) { Plotly.newPlot( "debugger", [{"alignmentgroup":"True","customdata":[["2025",1246],["2025",730],["2025",282],["2025",62]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2025","marker":{"color":"#636EFA","pattern":{"shape":""}},"name":"2025","offsetgroup":"2025","orientation":"v","showlegend":true,"text":["53.7%","31.5%","12.2%","2.7%"],"textposition":"outside","x":["\u003cspan style='font-size: 1.3em'\u003eNever or very rarely\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eSometimes (e.g. once per week\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003eor less)\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eOften (e.g. multiple times per\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003eday)\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eAlmost always (e.g. after\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003ealmost every build)\u003c\u002fspan\u003e"],"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAoHvaSkAAAABALHc\u002fQAAAAMByTyhAAAAAgBphBUA="},"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["\u003cspan style='font-size: 1.3em'\u003eNever or very rarely\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eSometimes (e.g. once per week\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003eor less)\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eOften (e.g. multiple times per\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003eday)\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eAlmost always (e.g. after\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003ealmost every build)\u003c\u002fspan\u003e"],"tickfont":{"size":9},"tickangle":30},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eHow often do you use a debugger to debug your Rust code?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 2320, single answer)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":false,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("required-debuginfo")) { Plotly.newPlot( "required-debuginfo", [{"alignmentgroup":"True","customdata":[["2025",742],["2025",731],["2025",802]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2025","marker":{"color":"#636EFA","pattern":{"shape":""}},"name":"2025","offsetgroup":"2025","orientation":"v","showlegend":true,"text":["32.6%","32.1%","35.3%"],"textposition":"outside","x":["\u003cspan style='font-size: 1.3em'\u003eYes, I want full debuginfo by\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003edefault\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eYes, but I do not need full\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003edebuginfo for my dependencies,\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003ejust for my code\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eNo, I would prefer slightly\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003efaster compilation with less\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003edebuginfo by default\u003c\u002fspan\u003e"],"xaxis":"x","y":{"dtype":"f8","bdata":"AAAA4MROQEAAAAAg4RBAQAAAAABaoEFA"},"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["\u003cspan style='font-size: 1.3em'\u003eNo, I would prefer slightly\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003efaster compilation with less\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003edebuginfo by default\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eYes, I want full debuginfo by\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003edefault\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eYes, but I do not need full\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003edebuginfo for my dependencies,\u003c\u002fspan\u003e\u003cbr \u002f\u003e\u003cspan style='font-size: 1.3em'\u003ejust for my code\u003c\u002fspan\u003e"],"tickfont":{"size":9},"tickangle":0},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":50},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":400,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eDo you require unoptimized builds to have debuginfo by default?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 2275, single answer)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":false,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("required-debuginfo-debugger")) { Plotly.newPlot( "required-debuginfo-debugger", [{"hovertemplate":"Do you require debuginfo?=Yes\u003cbr\u003eDo you use a debugger?=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Yes","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"Yes","orientation":"v","showlegend":true,"textposition":"auto","x":["Almost always","Never or very rarely","Often","Sometimes"],"xaxis":"x","y":{"dtype":"f8","bdata":"W2uttdZaU0CmShGJJbk3QDugG\u002fP00UhAlscVz6yMQkA="},"yaxis":"y","type":"bar"},{"hovertemplate":"Do you require debuginfo?=Only for my code\u003cbr\u003eDo you use a debugger?=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Only for my code","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"Only for my code","orientation":"v","showlegend":true,"textposition":"auto","x":["Almost always","Never or very rarely","Often","Sometimes"],"xaxis":"x","y":{"dtype":"f8","bdata":"IYQQQgghIEDerwGEmew7QJmnj1aTEENA2CqozcB0Q0A="},"yaxis":"y","type":"bar"},{"hovertemplate":"Do you require debuginfo?=No\u003cbr\u003eDo you use a debugger?=%{x}\u003cbr\u003ePercentage (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"No","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"No","orientation":"v","showlegend":true,"textposition":"auto","x":["Almost always","Never or very rarely","Often","Sometimes"],"xaxis":"x","y":{"dtype":"f8","bdata":"CCGEEEIILUC+gnZ5IC1IQLHgUtnedShAIxuExiT9N0A="},"yaxis":"y","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":"Do you use a debugger?"},"categoryorder":"array","categoryarray":["Almost always","Often","Sometimes","Never or very rarely"]},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percentage (%)"}},"legend":{"title":{"text":"Do you require debuginfo?"},"tracegroupgap":0},"title":{"text":"\u003cb\u003eDebuginfo requirement based on the usage of a debugger (%)\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003eThe percentages are relative to each individual group on the X axis\u003c\u002fspan\u003e"},"barmode":"relative","height":400}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("compile-time-improvement-mechanisms")) { Plotly.newPlot( "compile-time-improvement-mechanisms", [{"customdata":[["It helps me improve compile times"],["It helps me improve compile times"],["It helps me improve compile times"],["It helps me improve compile times"],["It helps me improve compile times"],["It helps me improve compile times"],["It helps me improve compile times"],["It helps me improve compile times"],["It helps me improve compile times"],["It helps me improve compile times"],["It helps me improve compile times"],["It helps me improve compile times"],["It helps me improve compile times"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"It helps me improve compile times","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"It helps me improve compile times","orientation":"h","showlegend":true,"text":["21.82%","13.70%","8.19%","35.42%","16.04%","9.58%","41.45%","53.06%","45.75%","39.28%","26.93%","12.35%","11.38%"],"textposition":"inside","x":{"dtype":"f8","bdata":"5ZrdQEvSNUDrNqkcNmgrQP0F9BfQXyBAYQu2YAu2QUC8lX0OqQkwQKWi2sbVKCNAMdLQ3DO6RECisT401odKQC5wgQtc4EZAEX\u002fcuryjQ0C\u002f66YKj+46QDFWUBXhsyhAPtOkiLfBJkA="},"xaxis":"x","y":["Disable or reduce\u003cbr \u002f\u003edebuginfo","Parallel compiler\u003cbr \u002f\u003efrontend","Cranelift backend","Alternative linker","Caching compiler\u003cbr \u002f\u003ewrapper","Share target\u003cbr \u002f\u003edirectory","Split crates","Reduce dependency\u003cbr \u002f\u003ecount","Disable default\u003cbr \u002f\u003eCargo features of\u003cbr \u002f\u003edependencies","Create opt-in Cargo\u003cbr \u002f\u003efeatures","Reduce usage of\u003cbr \u002f\u003eprocedural macros","Reduce usage of\u003cbr \u002f\u003egeneric code","Merge integration\u003cbr \u002f\u003etests into a single\u003cbr \u002f\u003ebinary"],"yaxis":"y","type":"bar"},{"customdata":[["I tried it, but it didn't help"],["I tried it, but it didn't help"],["I tried it, but it didn't help"],["I tried it, but it didn't help"],["I tried it, but it didn't help"],["I tried it, but it didn't help"],["I tried it, but it didn't help"],["I tried it, but it didn't help"],["I tried it, but it didn't help"],["I tried it, but it didn't help"],["I tried it, but it didn't help"],["I tried it, but it didn't help"],["I tried it, but it didn't help"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"I tried it, but it didn't help","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"I tried it, but it didn't help","orientation":"h","showlegend":true,"text":["14.02%","10.52%","5.40%","12.00%","12.62%","7.82%","14.68%","12.79%","14.56%","14.23%","11.07%","10.02%","3.98%"],"textposition":"inside","x":{"dtype":"f8","bdata":"yS9tixQLLEA1XetTRAwlQHtZOVKqlxVAAAAAAAAAKECnI+2hQD8pQJU+550PRR9A4Fh29KRcLUBl4kr3BpQpQNKPfvSjHy1AGuKPW5d3LECQHKRSeiEmQNLZxmNeCSRAm\u002fny7ofSD0A="},"xaxis":"x","y":["Disable or reduce\u003cbr \u002f\u003edebuginfo","Parallel compiler\u003cbr \u002f\u003efrontend","Cranelift backend","Alternative linker","Caching compiler\u003cbr \u002f\u003ewrapper","Share target\u003cbr \u002f\u003edirectory","Split crates","Reduce dependency\u003cbr \u002f\u003ecount","Disable default\u003cbr \u002f\u003eCargo features of\u003cbr \u002f\u003edependencies","Create opt-in Cargo\u003cbr \u002f\u003efeatures","Reduce usage of\u003cbr \u002f\u003eprocedural macros","Reduce usage of\u003cbr \u002f\u003egeneric code","Merge integration\u003cbr \u002f\u003etests into a single\u003cbr \u002f\u003ebinary"],"yaxis":"y","type":"bar"},{"customdata":[["I know of it, but haven't tried it"],["I know of it, but haven't tried it"],["I know of it, but haven't tried it"],["I know of it, but haven't tried it"],["I know of it, but haven't tried it"],["I know of it, but haven't tried it"],["I know of it, but haven't tried it"],["I know of it, but haven't tried it"],["I know of it, but haven't tried it"],["I know of it, but haven't tried it"],["I know of it, but haven't tried it"],["I know of it, but haven't tried it"],["I know of it, but haven't tried it"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"I know of it, but haven't tried it","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"I know of it, but haven't tried it","orientation":"h","showlegend":true,"text":["44.41%","37.75%","52.81%","36.93%","39.94%","36.78%","37.08%","31.34%","28.54%","36.04%","53.22%","62.08%","36.12%"],"textposition":"inside","x":{"dtype":"f8","bdata":"+rEJfmY0RkCqXcddPuBCQH5mWsHfZ0pAeHd3d3d3QkCOWJce8\u002fdDQLbZLs8tZEJAEDOB1XOKQkDVEHuMflY\u002fQAhFKEIRijxAty7vgCMFQkBFMx66npxKQLdkKk\u002fWCU9AOzbz5d0PQkA="},"xaxis":"x","y":["Disable or reduce\u003cbr \u002f\u003edebuginfo","Parallel compiler\u003cbr \u002f\u003efrontend","Cranelift backend","Alternative linker","Caching compiler\u003cbr \u002f\u003ewrapper","Share target\u003cbr \u002f\u003edirectory","Split crates","Reduce dependency\u003cbr \u002f\u003ecount","Disable default\u003cbr \u002f\u003eCargo features of\u003cbr \u002f\u003edependencies","Create opt-in Cargo\u003cbr \u002f\u003efeatures","Reduce usage of\u003cbr \u002f\u003eprocedural macros","Reduce usage of\u003cbr \u002f\u003egeneric code","Merge integration\u003cbr \u002f\u003etests into a single\u003cbr \u002f\u003ebinary"],"yaxis":"y","type":"bar"},{"customdata":[["Never heard of it"],["Never heard of it"],["Never heard of it"],["Never heard of it"],["Never heard of it"],["Never heard of it"],["Never heard of it"],["Never heard of it"],["Never heard of it"],["Never heard of it"],["Never heard of it"],["Never heard of it"],["Never heard of it"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Never heard of it","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"Never heard of it","orientation":"h","showlegend":true,"text":["19.75%","38.02%","33.60%","15.64%","31.40%","45.82%","6.78%","2.81%","11.15%","10.45%","8.78%","15.55%","48.52%"],"textposition":"inside","x":{"dtype":"f8","bdata":"Q2lYfV2\u002fM0BPfRMGowJDQNRsYe42zUBAn\u002fRJn\u002fRJL0BUJ11j0GY\u002fQM6VXcv66EZANySDhHghG0Cg1RB7jH4GQGUlK1nJSiZAxmZBtefkJEDbPpWv7I4hQCI9P0pnGy9AXGX0uItCSEA="},"xaxis":"x","y":["Disable or reduce\u003cbr \u002f\u003edebuginfo","Parallel compiler\u003cbr \u002f\u003efrontend","Cranelift backend","Alternative linker","Caching compiler\u003cbr \u002f\u003ewrapper","Share target\u003cbr \u002f\u003edirectory","Split crates","Reduce dependency\u003cbr \u002f\u003ecount","Disable default\u003cbr \u002f\u003eCargo features of\u003cbr \u002f\u003edependencies","Create opt-in Cargo\u003cbr \u002f\u003efeatures","Reduce usage of\u003cbr \u002f\u003eprocedural macros","Reduce usage of\u003cbr \u002f\u003egeneric code","Merge integration\u003cbr \u002f\u003etests into a single\u003cbr \u002f\u003ebinary"],"yaxis":"y","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"fixedrange":true,"range":[0,100],"ticksuffix":"%","showgrid":false},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Merge integration\u003cbr \u002f\u003etests into a single\u003cbr \u002f\u003ebinary","Share target\u003cbr \u002f\u003edirectory","Cranelift backend","Parallel compiler\u003cbr \u002f\u003efrontend","Caching compiler\u003cbr \u002f\u003ewrapper","Reduce usage of\u003cbr \u002f\u003egeneric code","Disable or reduce\u003cbr \u002f\u003edebuginfo","Reduce usage of\u003cbr \u002f\u003eprocedural macros","Alternative linker","Create opt-in Cargo\u003cbr \u002f\u003efeatures","Split crates","Disable default\u003cbr \u002f\u003eCargo features of\u003cbr \u002f\u003edependencies","Reduce dependency\u003cbr \u002f\u003ecount"],"tickangle":0,"fixedrange":true,"ticksuffix":""},"legend":{"title":{"text":"Severity"},"tracegroupgap":0,"orientation":"h","y":-0.05},"title":{"text":"\u003cb\u003eHave you used any of the following mechanisms to improve compilation\u003cbr \u002f\u003eperformance?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 2305)\u003c\u002fspan\u003e"},"barmode":"relative","height":800,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"meta":"matrix-chart","dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("alternative-linker")) { Plotly.newPlot( "alternative-linker", [{"alignmentgroup":"True","customdata":[["2025",36],["2025",541],["2025",753],["2025",76],["2025",40]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2025","marker":{"color":"#636EFA","pattern":{"shape":""}},"name":"2025","offsetgroup":"2025","orientation":"v","showlegend":true,"text":["3.1%","46.9%","65.3%","6.6%","3.5%"],"textposition":"outside","x":["\u003cspan style='font-size: 1.3em'\u003egold\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003elld\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003emold\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003ewild\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eOther\u003c\u002fspan\u003e"],"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAgOj0CEAAAACAsXBHQAAAAGAVUFBAAAAAANlXGkAAAACAyboLQA=="},"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["\u003cspan style='font-size: 1.3em'\u003emold\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003elld\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003ewild\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003eOther\u003c\u002fspan\u003e","\u003cspan style='font-size: 1.3em'\u003egold\u003c\u002fspan\u003e"],"tickfont":{"size":9},"tickangle":0},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eIf you use an alternative linker, which one do you use?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 1154, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":false,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("profiling-tools")) { Plotly.newPlot( "profiling-tools", [{"customdata":[["I use it"],["I use it"],["I use it"],["I use it"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"I use it","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"I use it","orientation":"h","showlegend":true,"text":["6.13%","5.40%","6.13%","18.93%"],"textposition":"inside","x":{"dtype":"f8","bdata":"TQ3sHVODGEAOiD1QhJkVQE0N7B1TgxhAPTUA0X3tMkA="},"xaxis":"x","y":["Compiler self\u003cbr \u002f\u003eprofiler (-Zself-\u003cbr \u002f\u003eprofile)","Compiler pass\u003cbr \u002f\u003eanalysis (-Ztime-\u003cbr \u002f\u003epasses)","LLVM function\u003cbr \u002f\u003einstantiation\u003cbr \u002f\u003eanalysis (cargo-\u003cbr \u002f\u003ellvm-lines)","Cargo timings (cargo\u003cbr \u002f\u003ebuild --timings)"],"yaxis":"y","type":"bar"},{"customdata":[["I know of it, but don't use it"],["I know of it, but don't use it"],["I know of it, but don't use it"],["I know of it, but don't use it"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"I know of it, but don't use it","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"I know of it, but don't use it","orientation":"h","showlegend":true,"text":["29.55%","25.78%","23.01%","34.28%"],"textposition":"inside","x":{"dtype":"f8","bdata":"jC666KKLPUAi6aPJFMg5QKOLLrroAjdATeNVLfojQUA="},"xaxis":"x","y":["Compiler self\u003cbr \u002f\u003eprofiler (-Zself-\u003cbr \u002f\u003eprofile)","Compiler pass\u003cbr \u002f\u003eanalysis (-Ztime-\u003cbr \u002f\u003epasses)","LLVM function\u003cbr \u002f\u003einstantiation\u003cbr \u002f\u003eanalysis (cargo-\u003cbr \u002f\u003ellvm-lines)","Cargo timings (cargo\u003cbr \u002f\u003ebuild --timings)"],"yaxis":"y","type":"bar"},{"customdata":[["Never heard of it"],["Never heard of it"],["Never heard of it"],["Never heard of it"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003eSeverity: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Never heard of it","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"Never heard of it","orientation":"h","showlegend":true,"text":["64.33%","68.82%","70.86%","46.79%"],"textposition":"inside","x":{"dtype":"f8","bdata":"iLPyE+IUUEA3LZOIYjRRQEKclZ8Qt1FAFQIq6kZlR0A="},"xaxis":"x","y":["Compiler self\u003cbr \u002f\u003eprofiler (-Zself-\u003cbr \u002f\u003eprofile)","Compiler pass\u003cbr \u002f\u003eanalysis (-Ztime-\u003cbr \u002f\u003epasses)","LLVM function\u003cbr \u002f\u003einstantiation\u003cbr \u002f\u003eanalysis (cargo-\u003cbr \u002f\u003ellvm-lines)","Cargo timings (cargo\u003cbr \u002f\u003ebuild --timings)"],"yaxis":"y","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"fixedrange":true,"range":[0,100],"ticksuffix":"%","showgrid":false},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["LLVM function\u003cbr \u002f\u003einstantiation\u003cbr \u002f\u003eanalysis (cargo-\u003cbr \u002f\u003ellvm-lines)","Compiler pass\u003cbr \u002f\u003eanalysis (-Ztime-\u003cbr \u002f\u003epasses)","Compiler self\u003cbr \u002f\u003eprofiler (-Zself-\u003cbr \u002f\u003eprofile)","Cargo timings (cargo\u003cbr \u002f\u003ebuild --timings)"],"tickangle":0,"fixedrange":true,"ticksuffix":""},"legend":{"title":{"text":"Severity"},"tracegroupgap":0,"orientation":"h","y":-0.05},"title":{"text":"\u003cb\u003eAre you aware of the following tools for profiling Rust compilation?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 2469)\u003c\u002fspan\u003e"},"barmode":"relative","height":450,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"meta":"matrix-chart","dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; +function deepCopy(obj) { + return JSON.parse(JSON.stringify(obj)); +} + +// Angle axis ticks and make bar chart labels vertical on small displays +function relayoutCharts() { + if (window.innerWidth > 800) return; + + console.log("Relayouting charts"); + var bar_charts = document.getElementsByClassName("bar-chart"); + for (var i = 0; i < bar_charts.length; i++) { + var chart = bar_charts[i]; + + // We need to extract and copy the original layout, otherwise it would be lost + // when relayouting. + var layout = deepCopy(chart.layout); + layout.xaxis.tickangle = 90; + layout.autosize = false; + layout.width = "100%"; + Plotly.relayout(chart, layout); + Plotly.restyle(chart, {textangle: 90}); + } + var matrix_charts = document.getElementsByClassName("matrix-chart"); + for (var i = 0; i < matrix_charts.length; i++) { + var chart = matrix_charts[i]; + var layout = deepCopy(chart.layout); + layout.autosize = false; + layout.width = "100%"; + layout.legend.y = -0.3; + layout.legend.yanchor = "bottom"; + Plotly.relayout(chart, layout); + } +} + +window.addEventListener("resize", relayoutCharts); +document.addEventListener("DOMContentLoaded", relayoutCharts); diff --git a/content/rust-compiler-performance-survey-2025-results/compile-time-improvement-mechanisms.png b/content/rust-compiler-performance-survey-2025-results/compile-time-improvement-mechanisms.png new file mode 100644 index 000000000..8f740b73d Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/compile-time-improvement-mechanisms.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/compile-time-improvement-mechanisms.svg b/content/rust-compiler-performance-survey-2025-results/compile-time-improvement-mechanisms.svg new file mode 100644 index 000000000..ee8fac2dd --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/compile-time-improvement-mechanisms.svg @@ -0,0 +1 @@ +21.82%13.70%8.19%35.42%16.04%9.58%41.45%53.06%45.75%39.28%26.93%12.35%11.38%14.02%10.52%5.40%12.00%12.62%7.82%14.68%12.79%14.56%14.23%11.07%10.02%3.98%44.41%37.75%52.81%36.93%39.94%36.78%37.08%31.34%28.54%36.04%53.22%62.08%36.12%19.75%38.02%33.60%15.64%31.40%45.82%6.78%2.81%11.15%10.45%8.78%15.55%48.52%0%20%40%60%80%100%Merge integrationtests into a singlebinaryShare targetdirectoryCranelift backendParallel compilerfrontendCaching compilerwrapperReduce usage ofgeneric codeDisable or reducedebuginfoReduce usage ofprocedural macrosAlternative linkerCreate opt-in CargofeaturesSplit cratesDisable defaultCargo features ofdependenciesReduce dependencycountSeverityIt helps me improve compile timesI tried it, but it didn't helpI know of it, but haven't tried itNever heard of itHave you used any of the following mechanisms to improve compilationperformance?(total responses = 2305) \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/debugger.png b/content/rust-compiler-performance-survey-2025-results/debugger.png new file mode 100644 index 000000000..ef252c0d6 Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/debugger.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/debugger.svg b/content/rust-compiler-performance-survey-2025-results/debugger.svg new file mode 100644 index 000000000..db72693bd --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/debugger.svg @@ -0,0 +1 @@ +53.7%31.5%12.2%2.7%Never or very rarelySometimes (e.g. once per weekor less)Often (e.g. multiple times perday)Almost always (e.g. afteralmost every build)0%20%40%60%80%100%How often do you use a debugger to debug your Rust code?(total responses = 2320, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/index.md b/content/rust-compiler-performance-survey-2025-results/index.md new file mode 100644 index 000000000..c2bda623f --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/index.md @@ -0,0 +1,330 @@ ++++ +path = "2025/09/10/rust-compiler-performance-survey-2025-results" +title = "Rust compiler performance survey 2025 results" +authors = ["Jakub Beránek"] + +[extra] +team = "the compiler performance working group" +team_url = "https://www.rust-lang.org/governance/teams/compiler#team-wg-compiler-performance" ++++ + +Two months ago, we launched the first [Rust Compiler Performance Survey][rust-compiler-performance-survey], with the goal of helping us understand the biggest pain points of Rust developers related to build performance. It is clear that this topic is very important for the Rust community, as the survey received over 3 700 responses! We would like to thank everyone who participated in the survey, and especially those who described their workflows and challenges with an open answer. We plan to run this survey annually, so that we can observe long-term trends in Rust build performance and its perception. + +In this post, we'll show some interesting results and insights that we got from the survey and promote work that we have already done recently or that we plan to do to improve the build performance of Rust code. If you would like to examine the complete results of the survey, you can find them [here][report]. + +And now strap in, as there is a lot of data to explore! As this post is relatively long, here is an index of topics that it covers: + +- [Overall satisfaction](#overall-satisfaction) +- [Important workflows](#important-workflows) +- [Incremental rebuilds](#incremental-rebuilds) +- [Type checking and IDE performance](#type-checking-and-ide-performance) +- [Clean and CI builds](#clean-and-ci-builds) +- [Debug information](#debug-information) +- [Workarounds for improving build performance](#workarounds-for-improving-build-performance) +- [Understanding why builds are slow](#understanding-why-builds-are-slow) + +## Overall satisfaction + +To understand the overall sentiment, we asked our respondents to rate their satisfaction with their build performance, on a scale from 0 (worst) to 10 (best). The average rating was 6, with most people rating their experience with 7 out of 10: + + +
+
+
+ [PNG] [SVG] +
+
+ + +To help us understand the overall build experience in more detail, we also analyzed all open answers (over a thousand of them) written by our respondents, to help us identify several recurring themes, which we will discuss in this post. + +One thing that is clear from both the satisfaction rating and the open answers is that the build experience differs wildly across users and workflows, and it is not as clear-cut as "Rust builds are slow". We actually received many positive comments about users being happy with Rust build performance, and appreciation for it being improved vastly over the past several years to the point where it stopped being a problem. + +People also liked to compare their experience with other competing technologies. For example, many people wrote that the build performance of Rust is not worse, or is even better, than what they saw with C++. On the other hand, others noted that the build performance of languages such as Go or Zig is much better than that of Rust. + +While it is great to see some developers being happy with the state we have today, it is clear that many people are not so lucky, and Rust's build performance limits their productivity. Around 45% respondents who answered that they are no longer using Rust said that at least one of the reasons why they stopped were long compile times. + +In our survey we received a lot of feedback pointing out real issues and challenges in several areas of build performance, which is what we will focus on in this post. + +## Important workflows + +The challenges that Rust developers experience with build performance are not always as simple as the compiler itself being slow. There are many diverse workflows with competing trade-offs, and optimizing build performance for them might require completely different solutions. Some approaches for improving build performance can also be quite unintuitive. For example, stabilizing certain language features could help remove the need for certain build scripts or proc macros, and thus speed up compilation across the Rust ecosystem. You can watch [this talk][performance-talk-rustweek] from RustWeek about build performance to learn more. + +It is difficult to enumerate all possible build workflows, but we at least tried to ask about workflows that we assumed are common and could limit the productivity of Rust developers the most: + + +
+
+
+ [PNG] [SVG] +
+
+ + +We can see that all the workflows that we asked about cause significant problems to at least a fraction of the respondents, but some of them more so than others. To gain more information about the specific problems that developers face, we also asked a more detailed, follow-up question: + + +
+
+
+ [PNG] [SVG] +
+
+ + +Based on the answers to these two questions and other experiences shared in the open answers, we identified three groups of workflows that we will discuss next: + +- Incremental rebuilds after making a small change +- Type checking using `cargo check` or with a code editor +- Clean, from-scratch builds, including CI builds + +### Incremental rebuilds + +Waiting too long for an incremental rebuild after making a small source code change was by far the most common complaint in the open answers that we received, and it was also the most common problem that respondents said they struggle with. Based on our respondents' answers, this comes down to three main bottlenecks: + +- **Changes in workspaces trigger unnecessary rebuilds.** If you modify a crate in a workspace that has several dependent crates and perform a rebuild, all those dependent crates will currently have to be recompiled. This can cause a lot of unnecessary work and dramatically increase the latency of rebuilds in large (or deep) workspaces. We have some ideas about how to improve this workflow, such as the ["Relink, don't rebuild"][project-goal-rdr] proposal, but these are currently in a very experimental stage. +- **The linking phase is too slow.** This was a very common complaint, and it is indeed a real issue, because unlike the rest of the compilation process, linking is always performed "from scratch". The Rust compiler usually delegates linking to an external/system linker, so its performance is not completely within our hands. However, we are attempting to switch to faster linkers by default. For example, the most popular target (`x86_64-unknown-linux-gnu`) will very soon switch to the [LLD linker][rust-lld-blog-post], which provides significant performance wins. Long-term, it is possible that some linkers (e.g. [wild]) will allow us to perform even linking incrementally. +- **Incremental rebuild of a single crate is too slow.** The performance of this workflow depends on the cleverness of the incremental engine of the Rust compiler. While it is already very sophisticated, there are some parts of the compilation process that are not incremental yet or that are not cached in an optimal way. For example, expansion of derive proc macros is not currently cached, although work is underway to [change that][cache-proc-macros]. + +Several users have mentioned that they would like to see Rust perform hot-patching (such as the `subsecond` system used by the Dioxus UI framework or similar approaches used e.g. by the Bevy game engine). While these hot-patching systems are very exciting and can produce truly near-instant rebuild times for specialized use-cases, it should be noted that they also come with many limitations and edge-cases, and it does not seem that a solution that would allow hot-patching to work in a robust way has been found yet. + +To gauge how long is the typical rebuild latency, we asked our respondents to pick a single Rust project that they work on and which causes them to struggle with build times the most, and tell us how long they have to wait for it to be rebuilt after making a code change. + + +
+
+
+ [PNG] [SVG] +
+
+ + +Even though many developers do not actually experience this latency after each code change, as they consume results of type checking or inline annotations in their code editor, the fact that 55% of respondents have to wait more than ten seconds for a rebuild is far from ideal. + +If we partition these results based on answers to other questions, it is clear that the rebuild times depend a lot on the size of the project: + + +
+
+
+ [PNG] [SVG] +
+
+ + +And to a lesser factor also on the number of used dependencies: + + +
+
+
+ [PNG] [SVG] +
+
+ + +We would love to get to a point where the time needed to rebuild a Rust project is dependent primarily on the amount of performed code changes, rather than on the size of the codebase, but clearly we are not there yet. + +### Type checking and IDE performance + +Approximately 60% of respondents say that they use `cargo` terminal commands to type check, build or test their code, with `cargo check` being the most commonly used command performed after each code change: + + +
+
+
+ [PNG] [SVG] +
+
+ + +While the performance of `cargo check` does not seem to be as big of a blocker as e.g. incremental rebuilds, it also causes some pain points. One of the most common ones present in the survey responses is the fact that `cargo check` does not share the build cache with `cargo build`. This causes additional compilation to happen when you run e.g. `cargo check` several times to find all type errors, and when it succeeds, you follow up with `cargo build` to actually produce a built artifact. This workflow is an example of competing trade-offs, because sharing the build cache between these two commands by unifying them more would likely make `cargo check` itself slightly slower, which might be undesirable to some users. It is possible that we might be able to find some middle ground to improve the status quo though. You can follow updates to this work in [this issue][cargo-check-build-reuse-issue]. + +A related aspect is the latency of type checking in code editors and IDEs. Around 87% of respondents say that they use inline annotations in their editor as the primary mechanism of inspecting compiler errors, and around 33% of them consider waiting for these annotations to be a big blocker. In the open answers, we also received many reports of Rust Analyzer's performance and memory usage being a limiting factor. + +The maintainers of Rust Analyzer are working hard on improving its performance. Its caching system is [being improved][ra-talk-rustweek] to reduce analysis latency, the distributed builds of the editor are now [optimized with PGO][ra-pgo], which provided 15-20% performance wins, and work is underway to integrate the compiler's [new trait solver][ra-new-trait-solver] into Rust Analyzer, which could eventually also result in increased performance. + +More than 35% users said that they consider the IDE and Cargo [blocking one another][ra-cargo-blocking-issue] to be a big problem. There is an existing workaround for this, where you can configure Rust Analyzer to use a different target directory than Cargo, at the cost of increased disk space usage. We realized that this workaround has not been documented in a very visible way, so we added it to the [FAQ section][ra-cargo-blocking-faq] of the Rust Analyzer book. + +### Clean and CI builds + +Around 20% of participants responded that clean builds are a significant blocker for them. In order to improve their performance, you can try a recently introduced experimental Cargo and compiler option called [`hint-mostly-unused`][hint-mostly-unused], which can in certain situations help improve the performance of clean builds, particularly if your dependencies contain a lot of code that might not actually be used by your crate(s). + +One area where clean builds might happen often is Continuous Integration (CI). 1495 respondents said that they use CI to build Rust code, and around 25% of them consider its performance to be a big blocker for them. However, almost 36% of respondents who consider CI build performance to be a big issue said that they do not use any caching in CI, which we found surprising. One explanation might be that the generated artifacts (the `target` directory) is too large for effective caching, and runs into usage limits of CI providers, which is something that we saw mentioned repeatedly in the open answers section. We have recently introduced an experimental Cargo and compiler option called [`-Zembed-metadata`][cargo-no-embed-metadata] that is designed to reduce the size of the `target` directories, and work is also underway to regularly [garbage collect][cargo-garbage-collect] them. This might help with the disk space usage issue somewhat in the future. + +One additional way to significantly reduce disk usage is to reduce the amount of generated debug information, which brings us to the next section. + +## Debug information + +The default Cargo `dev` profile generates full debug information (debuginfo) both for workspace crates and also all dependencies. This enables stepping through code with a debugger, but it also increases disk usage of the `target` directory, and crucially it makes compilation and linking slower. This effect can be quite large, as our benchmarks show a possible improvement of [2-30% in cycle counts][perf-debug-line-tables-only] if we reduce the debuginfo level to `line-tables-only` (which only generates enough debuginfo for backtraces to work), and the improvements are [even larger][perf-debug-false] if we disable debuginfo generation completely[^lld]. + +[^lld]: This benchmark was already performed using the fast LLD linker. If a slower linker was used, the build time wins would likely be even larger. + +However, if Rust developers debug their code after most builds, then this cost might be justified. We thus asked them how often they use a debugger to debug their Rust code: + + +
+
+
+ [PNG] [SVG] +
+
+ + +Based on these results, it seems that the respondents of our survey do not actually use a debugger all that much[^why-not-debug]. + +[^why-not-debug]: Potentially because of the strong invariants upheld by the Rust type system, and partly also because the Rust debugging experience might not be optimal for many users, which is a feedback that we received in the [State of Rust 2024 survey][state-of-rust-2024]. + +However, when we asked people if they require debuginfo to be generated by default, the responses were much less clear-cut: + + +
+
+
+ [PNG] [SVG] +
+
+ + +This is the problem with changing defaults: it is challenging to improve the workflows of one user without regressing the workflow of another. For completeness, here are the answers to the previous question partitioned on the answer to the "How often do you use a debugger" question: + + +
+
+
+ [PNG] [SVG] +
+
+ + +It was surprising for us to see that around a quarter of respondents who (almost) never use a debugger still want to have full debuginfo generated by default. + +Of course, you can always disable debuginfo manually to improve your build performance, but not everyone knows about that option, and defaults matter a lot. The Cargo team is [considering][cargo-issue-dev-debug] ways of changing the status quo, for example by reducing the level of generated debug information in the `dev` profile, and introducing a new built-in profile designed for debugging. + +## Workarounds for improving build performance + +Build performance of Rust is affected by many different aspects, including the configuration of the build system (usually Cargo) and the Rust compiler, but also the organization of Rust crates and used source code patterns. There are thus several approaches that can be used to improve build performance by either using different configuration options or restructuring source code. We asked our respondents if they are even aware of such possibilities, whether they have tried them and how effective they were: + + +
+
+
+ [PNG] [SVG] +
+
+ + +It seems that the most popular (and effective) mechanisms for improving build performance are reducing the number of dependencies and their activated features, and splitting larger crates into smaller crates. The most common way of improving build performance without making source code changes seems to be the usage of an alternative linker. It seems that especially the mold and LLD linkers are very popular: + + +
+
+
+ [PNG] [SVG] [Wordcloud of open answers] +
+
+ + +We have good news here! The most popular `x86_64-unknown-linux-gnu` Linux target will start using the LLD linker in the next Rust stable release, resulting in faster link times *by default*. Over time, we will be able to evaluate how disruptive is this change to the overall Rust ecosystem, and whether we could e.g. switch to a different (even faster) linker. + +### Build performance guide + +We were surprised by the relatively large number of users who were unaware of some approaches for improving compilation times, in particular those that are very easy to try and typically do not require source code changes (such as reducing debuginfo or using a different linker or a codegen backend). Furthermore, almost 42% of respondents have not tried to use *any* mechanism for improving build performance whatsoever. While this is not totally unexpected, as some of these mechanisms require using the nightly toolchain or making non-trivial changes to source code, we think that one the reasons is also simply that Rust developers might not know about these mechanisms being available. In the open answers, several people also noted that they would appreciate if there was some sort of official guidance from the Rust Project about such mechanisms for improving compile times. + +It should be noted that the mechanisms that we asked about are in fact workarounds that present various trade-offs, and these should always be carefully considered. Several people have expressed dissatisfaction with some of these workarounds in the open answers, as they find it unacceptable to modify their code (which could sometimes result e.g. in increased maintenance costs or worse runtime performance) just to achieve reasonable compile times. Nevertheless, these workarounds can still be incredibly useful in some cases. + +The feedback that we received shows that it might be beneficial to spread awareness of these mechanisms in the Rust community more, as some of them can make a really large difference in build performance, but also to candidly explain the trade-offs that they introduce. Even though several great resources that cover this topic already exist online, we decided to create an [official guide][cargo-build-performance-guide] for optimizing build performance (currently work-in-progress), which will likely be hosted in the [Cargo book][cargo-book]. The aim of this guide is to increase the awareness of various mechanisms for improving build performance, and also provide a framework for evaluating their trade-offs. + +Our long-standing goal is to make compilation so fast that similar workarounds will not be necessary anymore for the vast majority of use-cases. However, there is no free lunch, and the combination of Rust's strong type system guarantees, its compilation model and also heavy focus on runtime performance often go against very fast (re)build performance, and might require usage of at least some workarounds. We hope that this guide will help Rust developers learn about them and evaluate them for their specific use-case. + +## Understanding why builds are slow + +When Rust developers experience slow builds, it can be challenging to identify where exactly is the compilation process spending time, and what could be the bottleneck. It seems that only very few Rust developers leverage tools for profiling their builds: + + +
+
+
+ [PNG] [SVG] +
+
+ + +This hardly comes as a surprise. There are currently not that many ways of intuitively understanding the performance characteristics of Cargo and `rustc`. Some tools offer only a limited amount of information (e.g. `cargo build --timings`), and the output of others (e.g. `-Zself-profile`) is very hard to interpret without knowledge of the compiler internals. + +To slightly improve this situation, we have recently added support for displaying [link times][cargo-linker-timings] to the `cargo build --timings` output, to provide more information about the possible bottleneck in crate compilation (note this feature has not been stabilized yet). + +Long-term, it would be great to have tooling that could help Rust developers diagnose compilation bottlenecks in their crates without them having to understand how the compiler works. For example, it could help answer questions such as "Which code had to be recompiled after a given source change" or "Which (proc) macros take the longest time to expand or produce the largest output", and ideally even offer some actionable suggestions. We plan to work on such tooling, but it will take time to manifest. + +One approach that could help Rust compiler contributors understand why are Rust (re)builds slow "in the wild" is the opt-in [compilation metrics collection initiative][project-goal-metrics-initiative]. + +## What's next + +There are more interesting things in the survey results, for example how do answers to selected questions differ based on the used operating system. You can examine the full results in the [full report PDF][report]. + +We would like to thank once more everyone who has participated in our survey. It helped us understand which workflows are the most painful for Rust developers, and especially the open answers provided several great suggestions that we tried to act upon. + +Even though the Rust compiler is getting increasingly faster every year, we understand that many Rust developers require truly significant improvements to improve their productivity, rather than "just" incremental performance wins. Our goal for the future is to finally stabilize long-standing initiatives that could improve build performance a lot, such as the [Cranelift codegen backend][project-goal-cranelift] or the [parallel compiler frontend][project-goal-parallel-frontend]. One such initiative (using a [faster linker by default][rust-lld-blog-post]) will finally land soon, but the fact that it took many years shows how difficult it is to make such large cutting changes to the compilation process. + +There are other ambitious ideas for reducing (re)build times, such as [avoiding unnecessary workspace rebuilds][project-goal-rdr] or e.g. using some form of [incremental linking][wild], but these will require a lot of work and design discussions. + +We know that some people are wondering why it takes so much time to achieve progress in improving the build performance of Rust. The answer is relatively simple. These changes require a lot of work, domain knowledge (that takes a relatively long time to acquire) and many discussions and code reviews, and the pool of people that have time and motivation to work on them or review these changes is very limited. Current compiler maintainers and contributors (many of whom work on the compiler as volunteers, without any funding) work very hard to keep up with maintaining the compiler and keeping it working with the high-quality bar that Rust developers expect, across many targets, platforms and operating systems. Introducing large structural changes, which are likely needed to reach massive performance improvements, would require a lot of concentrated effort and funding. + +[rust-compiler-performance-survey]: https://blog.rust-lang.org/2025/06/16/rust-compiler-performance-survey-2025 +[report]: https://raw.githubusercontent.com/rust-lang/surveys/main/surveys/2025/compiler-performance-survey/report/compiler-performance-2025-report.pdf +[perf-debug-line-tables-only]: https://perf.rust-lang.org/compare.html?start=0d0f4eac8b98133e5da6d3604d86a8f3b5a67844&end=71ea9a0cacc3473c7b6852c17453259f74635c62&stat=cycles%3Au&doc=false&check=false&opt=false +[perf-debug-false]: https://perf.rust-lang.org/compare.html?start=bea625f3275e3c897dc965ed97a1d19ef7831f01&end=87c3e1ecd699573f7cb4c9074b8727956bd37a74&stat=cycles%3Au&check=false&opt=false&doc=false +[cargo-issue-dev-debug]: https://github.com/rust-lang/cargo/issues/15931 +[state-of-rust-2024]: https://blog.rust-lang.org/2025/02/13/2024-State-Of-Rust-Survey-results/#challenges +[cargo-build-performance-guide]: https://github.com/rust-lang/cargo/pull/15924 +[cargo-book]: https://doc.rust-lang.org/cargo +[cargo-linker-timings]: https://github.com/rust-lang/cargo/pull/15923 +[cargo-no-embed-metadata]: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#no-embed-metadata +[cargo-check-build-reuse-issue]: https://github.com/rust-lang/cargo/issues/3501 +[cargo-garbage-collect]: https://github.com/rust-lang/cargo/issues/13136 +[cache-proc-macros]: https://github.com/rust-lang/rust/pull/145354 +[rust-lld-blog-post]: https://blog.rust-lang.org/2025/09/01/rust-lld-on-1.90.0-stable +[project-goal-rdr]: https://rust-lang.github.io/rust-project-goals/2025h2/relink-dont-rebuild.html +[project-goal-cranelift]: https://rust-lang.github.io/rust-project-goals/2025h2/production-ready-cranelift.html +[project-goal-parallel-frontend]: https://rust-lang.github.io/rust-project-goals/2025h2/parallel-front-end.html +[project-goal-metrics-initiative]: https://rust-lang.github.io/rust-project-goals/2025h1/metrics-initiative.html +[wild]: https://github.com/davidlattimore/wild +[hint-mostly-unused]: https://blog.rust-lang.org/inside-rust/2025/07/15/call-for-testing-hint-mostly-unused +[performance-talk-rustweek]: https://www.youtube.com/watch?v=-jy4HaNEJCo +[ra-talk-rustweek]: https://www.youtube.com/watch?v=tn6qwhMNBJo +[ra-pgo]: https://github.com/rust-lang/rust-analyzer/pull/19582 +[ra-new-trait-solver]: https://github.com/rust-lang/rust-analyzer/pull/20329 +[ra-cargo-blocking-issue]: https://github.com/rust-lang/cargo/issues/4282 +[ra-cargo-blocking-faq]: https://rust-analyzer.github.io/book/faq.html#rust-analyzer-and-cargo-compete-over-the-build-lock + + + + + + diff --git a/content/rust-compiler-performance-survey-2025-results/limiting-workflows.png b/content/rust-compiler-performance-survey-2025-results/limiting-workflows.png new file mode 100644 index 000000000..871cf61a6 Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/limiting-workflows.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/limiting-workflows.svg b/content/rust-compiler-performance-survey-2025-results/limiting-workflows.svg new file mode 100644 index 000000000..99f3205b8 --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/limiting-workflows.svg @@ -0,0 +1 @@ +14.39%10.99%24.76%20.60%30.93%18.84%21.66%17.27%10.95%44.06%39.47%46.43%44.41%38.29%44.65%40.27%32.48%19.32%38.55%40.41%25.49%27.43%19.19%28.32%30.25%24.09%17.69%3.00%9.13%3.33%7.56%11.59%8.18%7.82%26.16%52.04%0%20%40%60%80%100%Docker buildsCI buildscargo testcargo checkClean unoptimizedbuildsClean optimizedbuildsOptimized rebuildsWorkspace rebuildsUnoptimized rebuildsSeverityBig problem for meCould be improved, but does not limit meNot an issue for me at allI don't use this workflowWhich development workflows limit your productivity?(total responses = 2490) \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/problems.png b/content/rust-compiler-performance-survey-2025-results/problems.png new file mode 100644 index 000000000..22c77368f Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/problems.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/problems.svg b/content/rust-compiler-performance-survey-2025-results/problems.svg new file mode 100644 index 000000000..a70826824 --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/problems.svg @@ -0,0 +1 @@ +45.62%18.25%28.98%35.93%23.09%22.32%23.06%39.57%38.13%43.90%37.42%42.66%39.63%27.54%14.81%43.62%27.12%26.66%34.25%38.04%49.40%0%20%40%60%80%100%cargo rebuildingeverything fromscratch and I do notunderstand whyWaiting for CIworkflows that buildRust codecargo check andcargo clippy notsharing compilationcachecargo check andcargo build notsharing compilationcacheWaiting for an IDEto show me inlineerror/warningannotationscargo and my IDEblocking each otherWaiting for arebuild after makinga small changeSeverityBig problem for meCould be improved, but does not limit meNot an issue for me at allWhich of the following problems do you most struggle with?(total responses = 2463) \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/profiling-tools.png b/content/rust-compiler-performance-survey-2025-results/profiling-tools.png new file mode 100644 index 000000000..16e1b8694 Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/profiling-tools.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/profiling-tools.svg b/content/rust-compiler-performance-survey-2025-results/profiling-tools.svg new file mode 100644 index 000000000..72469b869 --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/profiling-tools.svg @@ -0,0 +1 @@ +6.13%5.40%6.13%18.93%29.55%25.78%23.01%34.28%64.33%68.82%70.86%46.79%0%20%40%60%80%100%LLVM functioninstantiationanalysis (cargo-llvm-lines)Compiler passanalysis (-Ztime-passes)Compiler selfprofiler (-Zself-profile)Cargo timings (cargobuild --timings)SeverityI use itI know of it, but don't use itNever heard of itAre you aware of the following tools for profiling Rust compilation?(total responses = 2469) \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-code-size.png b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-code-size.png new file mode 100644 index 000000000..09726d58b Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-code-size.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-code-size.svg b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-code-size.svg new file mode 100644 index 000000000..a4baede7d --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-code-size.svg @@ -0,0 +1 @@ +Less than 2 thousand lines2-10 thousand lines11-50 thousand lines51-100 thousand lines101-500 thousand linesMore than 500 thousand lines of code020406080100Rebuild time<1s1-5s5-10s10-30s30s-1m1-5m>5mAverage rebuild time based on project size (%)The percentages are relative to each individual group on the X axisCodebase sizePercentage (%) \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-dep-count.png b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-dep-count.png new file mode 100644 index 000000000..83c8439bc Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-dep-count.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-dep-count.svg b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-dep-count.svg new file mode 100644 index 000000000..3cedfae8e --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time-dep-count.svg @@ -0,0 +1 @@ +No dependencies1-10 dependencies11-50 dependencies51-100 dependencies101-200 dependencies201-300 dependencies301-500 dependenciesMore than 500 dependencies020406080100No dependencies1-10 dependencies11-50 dependencies51-100 dependencies101-200 dependencies201-300 dependencies301-500 dependenciesMore than 500 dependenciesNo dependencies1-10 dependencies11-50 dependencies51-100 dependencies101-200 dependencies201-300 dependencies301-500 dependenciesMore than 500 dependencies020406080100Rebuild time<1s1-5s5-10s10-30s30s-1m1-5m>5mAverage rebuild time based on project size and dependency count (%)The percentages are relative to each individual group on the X axisPercentage (%)Percentage (%)51-100 thousand lines101-500 thousand linesMore than 500 thousand lines of codeLess than 2 thousand lines2-10 thousand lines11-50 thousand lines \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time.png b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time.png new file mode 100644 index 000000000..51aa1787f Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time.svg b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time.svg new file mode 100644 index 000000000..d1f816d70 --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/rebuild-wait-time.svg @@ -0,0 +1 @@ +2.5%20.2%22.6%22.5%12.1%15.7%4.5%Less than a secondBetween 1 and 5 secondsBetween 5 and 10 secondsBetween 10 and 30 secondsBetween 30 seconds and 1minuteBetween 1 and 5 minutesMore than 5 minutes0%20%40%60%80%100%How long do you need to wait for the compiler to rebuild your code aftermaking a change?(total responses = 2445, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/required-debuginfo-debugger.png b/content/rust-compiler-performance-survey-2025-results/required-debuginfo-debugger.png new file mode 100644 index 000000000..431521bac Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/required-debuginfo-debugger.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/required-debuginfo-debugger.svg b/content/rust-compiler-performance-survey-2025-results/required-debuginfo-debugger.svg new file mode 100644 index 000000000..356d75c84 --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/required-debuginfo-debugger.svg @@ -0,0 +1 @@ +Almost alwaysOftenSometimesNever or very rarely020406080100Do you require debuginfo?YesOnly for my codeNoDebuginfo requirement based on the usage of a debugger (%)The percentages are relative to each individual group on the X axisDo you use a debugger?Percentage (%) \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/required-debuginfo.png b/content/rust-compiler-performance-survey-2025-results/required-debuginfo.png new file mode 100644 index 000000000..4ca64b00f Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/required-debuginfo.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/required-debuginfo.svg b/content/rust-compiler-performance-survey-2025-results/required-debuginfo.svg new file mode 100644 index 000000000..edc21972d --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/required-debuginfo.svg @@ -0,0 +1 @@ +32.6%32.1%35.3%No, I would prefer slightlyfaster compilation with lessdebuginfo by defaultYes, I want full debuginfo bydefaultYes, but I do not need fulldebuginfo for my dependencies,just for my code0%20%40%60%80%100%Do you require unoptimized builds to have debuginfo by default?(total responses = 2275, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/content/rust-compiler-performance-survey-2025-results/satisfaction.png b/content/rust-compiler-performance-survey-2025-results/satisfaction.png new file mode 100644 index 000000000..ec321e002 Binary files /dev/null and b/content/rust-compiler-performance-survey-2025-results/satisfaction.png differ diff --git a/content/rust-compiler-performance-survey-2025-results/satisfaction.svg b/content/rust-compiler-performance-survey-2025-results/satisfaction.svg new file mode 100644 index 000000000..fd00ff13c --- /dev/null +++ b/content/rust-compiler-performance-survey-2025-results/satisfaction.svg @@ -0,0 +1 @@ +1.7%0.9%3.5%6.9%7.2%10.9%21.3%27.7%14.9%3.7%1.3%0123456789100%20%40%60%80%100%Overall, how satisfied are you with Rust compilation performance?(0 = worst, 10 = best)(total responses = 2257, single answer)Percent out of all responses (%) \ No newline at end of file