|
868 | 868 | opacity: groups[g].marker.opacity, |
869 | 869 | size: isMobile() ? groups[g].marker.size.map(function (s) { return Math.max(6, s * 0.7); }) : groups[g].marker.size, |
870 | 870 | symbol: groups[g].marker.symbol, |
871 | | - line: { width: 1, color: t.text } |
| 871 | + line: { width: 0 } |
872 | 872 | } |
873 | 873 | }); |
874 | 874 | }); |
|
1214 | 1214 |
|
1215 | 1215 | var layout = baseLayout('Offline & Client Storage', { |
1216 | 1216 | barmode: 'group', |
1217 | | - xaxis: { title: 'Size (MB)', gridcolor: t.grid }, |
| 1217 | + xaxis: { title: 'Size (MB), log', type: 'log', gridcolor: t.grid }, |
1218 | 1218 | yaxis: { tickfont: { size: 11 }, gridcolor: t.grid }, |
1219 | 1219 | legend: { orientation: 'h', x: 0, y: -0.12, font: { size: 11 } }, |
1220 | 1220 | margin: { l: barLeftMargin(), r: 60, t: 48, b: 100 }, |
|
1327 | 1327 | barmode: 'group', |
1328 | 1328 | showlegend: false, |
1329 | 1329 | yaxis: { tickfont: { size: 11 }, gridcolor: t.grid }, |
1330 | | - xaxis: { title: { text: 'Time (ms)', standoff: 20 }, type: 'log', gridcolor: t.grid }, |
| 1330 | + xaxis: { title: { text: 'Time (log)', standoff: 20 }, type: 'log', gridcolor: t.grid }, |
1331 | 1331 | margin: { l: isMobile() ? 140 : 160, r: 80, t: 48, b: 50 }, |
1332 | 1332 | height: Math.max(300, items.length * 30 + 80) |
1333 | 1333 | }); |
|
1431 | 1431 | text: gItems.map(function (s) { return consolidatedName(s); }), |
1432 | 1432 | textposition: gItems.map(function (s) { return posMap[itemIdx[s.id + '|' + s.display_name]] || 'top center'; }), |
1433 | 1433 | cliponaxis: false, |
1434 | | - textfont: { size: 9, color: t.muted }, |
| 1434 | + textfont: { size: 11, color: t.muted }, |
1435 | 1435 | marker: { |
1436 | | - size: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 14 : 8; }), |
| 1436 | + size: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 18 : 12; }), |
1437 | 1437 | color: GROUP_COLORS[g], |
1438 | 1438 | symbol: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 'star' : (s.data_tier === 3 ? 'diamond' : 'circle'); }), |
1439 | 1439 | opacity: gItems.map(function (s) { return TIER_OPACITY[s.data_tier]; }), |
1440 | | - line: { width: 1, color: t.text } |
| 1440 | + line: { width: 0 } |
1441 | 1441 | }, |
1442 | 1442 | hovertext: gItems.map(function (s) { |
1443 | 1443 | return consolidatedName(s) + (entrySizeLabel(s) ? ' (' + entrySizeLabel(s) + ' entries)' : '') + '<br>Total Comm: ' + formatNum(s._totalComm) + ' KB<br>Server: ' + formatNum(getVal(s, 'server_time_ms')) + ' ms' + |
|
1533 | 1533 | textposition: gItems.map(function (s) { return posMap[itemIdx[s.id + '|' + s.display_name]] || 'top center'; }), cliponaxis: false, |
1534 | 1534 | textfont: { size: 9, color: t.muted }, |
1535 | 1535 | marker: { |
1536 | | - size: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 14 : 8; }), |
| 1536 | + size: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 18 : 12; }), |
1537 | 1537 | color: GROUP_COLORS[g], |
1538 | 1538 | symbol: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 'star' : (s.data_tier === 3 ? 'diamond' : 'circle'); }), |
1539 | 1539 | opacity: gItems.map(function (s) { return TIER_OPACITY[s.data_tier]; }), |
1540 | | - line: { width: 1, color: t.text } |
| 1540 | + line: { width: 0 } |
1541 | 1541 | }, |
1542 | 1542 | hovertext: gItems.map(function (s) { |
1543 | 1543 | return consolidatedName(s) + (entrySizeLabel(s) ? ' (' + entrySizeLabel(s) + ' entries)' : '') + '<br>Total Comm: ' + formatNum(s._totalComm) + ' KB<br>Client Storage: ' + formatNum(getVal(s, 'client_storage_mb')) + ' MB' + storageNote(s) + |
|
1627 | 1627 | textposition: gItems.map(function (s) { return posMap[itemIdx[s.id + '|' + s.display_name]] || 'top center'; }), cliponaxis: false, |
1628 | 1628 | textfont: { size: 9, color: t.muted }, |
1629 | 1629 | marker: { |
1630 | | - size: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 14 : 8; }), |
| 1630 | + size: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 18 : 12; }), |
1631 | 1631 | color: GROUP_COLORS[g], |
1632 | 1632 | symbol: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 'star' : (s.data_tier === 3 ? 'diamond' : 'circle'); }), |
1633 | 1633 | opacity: gItems.map(function (s) { return TIER_OPACITY[s.data_tier]; }), |
1634 | | - line: { width: 1, color: t.text } |
| 1634 | + line: { width: 0 } |
1635 | 1635 | }, |
1636 | 1636 | hovertext: gItems.map(function (s) { |
1637 | 1637 | return consolidatedName(s) + (entrySizeLabel(s) ? ' (' + entrySizeLabel(s) + ' entries)' : '') + '<br>Total Comm: ' + formatNum(s._totalComm) + ' KB<br>Client Time: ' + formatNum(getVal(s, 'client_time_ms')) + ' ms' + |
|
1718 | 1718 | textposition: gItems.map(function (s) { return posMap[itemIdx[s.id + '|' + s.display_name]] || 'top center'; }), cliponaxis: false, |
1719 | 1719 | textfont: { size: 9, color: t.muted }, |
1720 | 1720 | marker: { |
1721 | | - size: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 14 : 8; }), |
| 1721 | + size: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 18 : 12; }), |
1722 | 1722 | color: GROUP_COLORS[g], |
1723 | 1723 | symbol: gItems.map(function (s) { return pareto.indexOf(s) >= 0 ? 'star' : (s.data_tier === 3 ? 'diamond' : 'circle'); }), |
1724 | 1724 | opacity: gItems.map(function (s) { return TIER_OPACITY[s.data_tier]; }), |
1725 | | - line: { width: 1, color: t.text } |
| 1725 | + line: { width: 0 } |
1726 | 1726 | }, |
1727 | 1727 | hovertext: gItems.map(function (s) { |
1728 | 1728 | return consolidatedName(s) + (entrySizeLabel(s) ? ' (' + entrySizeLabel(s) + ' entries)' : '') + '<br>Server Time: ' + formatNum(getVal(s, 'server_time_ms')) + ' ms<br>Client Time: ' + formatNum(getVal(s, 'client_time_ms')) + ' ms' + |
|
1794 | 1794 | traces.push({ |
1795 | 1795 | x: [null], y: [null], z: [null], mode: 'markers', type: 'scatter3d', |
1796 | 1796 | name: GROUP_NAMES[g], |
1797 | | - marker: { size: 8, color: GROUP_COLORS[g], symbol: GROUP_SYMBOLS_3D[g], line: { width: 1, color: t.text } }, |
| 1797 | + marker: { size: 8, color: GROUP_COLORS[g], symbol: GROUP_SYMBOLS_3D[g], line: { width: 0 } }, |
1798 | 1798 | hoverinfo: 'skip' |
1799 | 1799 | }); |
1800 | 1800 | }); |
|
1810 | 1810 | showlegend: false, |
1811 | 1811 | text: gItems.map(function (s) { return consolidatedName(s); }), |
1812 | 1812 | textposition: 'top center', |
1813 | | - textfont: { size: 9, color: t.muted }, |
| 1813 | + textfont: { size: 11, color: t.muted }, |
1814 | 1814 | marker: { |
1815 | | - size: 6, |
| 1815 | + size: 8, |
1816 | 1816 | color: GROUP_COLORS[g], |
1817 | 1817 | symbol: GROUP_SYMBOLS_3D[g], |
1818 | 1818 | opacity: gItems.map(function (s) { return TIER_OPACITY[s.data_tier]; }), |
1819 | | - line: { width: 1, color: t.text } |
| 1819 | + line: { width: 0 } |
1820 | 1820 | }, |
1821 | 1821 | hovertext: gItems.map(function (s) { |
1822 | 1822 | return consolidatedName(s) + (entrySizeLabel(s) ? ' (' + entrySizeLabel(s) + ' entries)' : '') + '<br>Comm: ' + formatNum(s._totalComm) + ' KB<br>Storage: ' + formatNum(getVal(s, 'client_storage_mb')) + ' MB' + storageNote(s) + '<br>Client: ' + formatNum(getVal(s, 'client_time_ms')) + ' ms' + |
|
1884 | 1884 | traces.push({ |
1885 | 1885 | x: [null], y: [null], z: [null], mode: 'markers', type: 'scatter3d', |
1886 | 1886 | name: GROUP_NAMES[g], |
1887 | | - marker: { size: 8, color: GROUP_COLORS[g], symbol: GROUP_SYMBOLS_3D[g], line: { width: 1, color: t.text } }, |
| 1887 | + marker: { size: 8, color: GROUP_COLORS[g], symbol: GROUP_SYMBOLS_3D[g], line: { width: 0 } }, |
1888 | 1888 | hoverinfo: 'skip' |
1889 | 1889 | }); |
1890 | 1890 | }); |
|
1900 | 1900 | showlegend: false, |
1901 | 1901 | text: gItems.map(function (s) { return consolidatedName(s); }), |
1902 | 1902 | textposition: 'top center', |
1903 | | - textfont: { size: 9, color: t.muted }, |
| 1903 | + textfont: { size: 11, color: t.muted }, |
1904 | 1904 | marker: { |
1905 | | - size: 6, |
| 1905 | + size: 8, |
1906 | 1906 | color: GROUP_COLORS[g], |
1907 | 1907 | symbol: GROUP_SYMBOLS_3D[g], |
1908 | 1908 | opacity: gItems.map(function (s) { return TIER_OPACITY[s.data_tier]; }), |
1909 | | - line: { width: 1, color: t.text } |
| 1909 | + line: { width: 0 } |
1910 | 1910 | }, |
1911 | 1911 | hovertext: gItems.map(function (s) { |
1912 | 1912 | return consolidatedName(s) + (entrySizeLabel(s) ? ' (' + entrySizeLabel(s) + ' entries)' : '') + '<br>Server: ' + formatNum(getVal(s, 'server_time_ms')) + ' ms<br>Storage: ' + formatNum(getVal(s, 'client_storage_mb')) + ' MB' + storageNote(s) + '<br>Client: ' + formatNum(getVal(s, 'client_time_ms')) + ' ms' + |
|
2084 | 2084 | return radarMetrics.some(function (m) { return isPos(getVal(s, m)); }); |
2085 | 2085 | }) |
2086 | 2086 | .sort(function (a, b) { |
2087 | | - if (a.group !== b.group) return a.group.localeCompare(b.group); |
| 2087 | + var priorityIds = ['rms24', 'via', 'plinko', 'onionpirv2', 'inspire']; |
| 2088 | + var aPri = priorityIds.some(function (p) { return a.id.indexOf(p) === 0; }) ? 0 : 1; |
| 2089 | + var bPri = priorityIds.some(function (p) { return b.id.indexOf(p) === 0; }) ? 0 : 1; |
| 2090 | + if (aPri !== bPri) return aPri - bPri; |
| 2091 | + var radarGroupOrder = { '1b': 0, '2b': 1, '2a': 2, '1a': 3 }; |
| 2092 | + var ga = radarGroupOrder[a.group] !== undefined ? radarGroupOrder[a.group] : 9; |
| 2093 | + var gb = radarGroupOrder[b.group] !== undefined ? radarGroupOrder[b.group] : 9; |
| 2094 | + if (ga !== gb) return ga - gb; |
2088 | 2095 | return a._composite - b._composite; |
2089 | 2096 | }); |
2090 | 2097 |
|
|
2383 | 2390 | return Math.max(10, Math.min(40, 50 / Math.log10(comm + 1))); |
2384 | 2391 | }), |
2385 | 2392 | opacity: gItems.map(function (s) { return TIER_OPACITY[s.data_tier]; }), |
2386 | | - line: { width: 1, color: t.text } |
| 2393 | + line: { width: 0 } |
2387 | 2394 | }, |
2388 | 2395 | hovertext: gItems.map(function (s) { |
2389 | 2396 | var lines = s.display_name + ' (' + s.year + ')'; |
|
2540 | 2547 | (s.db_size_categories && s.db_size_categories.some(function (c) { return activeDbSizes.has(c); })); |
2541 | 2548 | return groupOk && tierOk && implOk && dbOk; |
2542 | 2549 | }); |
| 2550 | + var catalogPriorityIds = ['rms24', 'via', 'plinko', 'onionpirv2', 'inspire']; |
| 2551 | + function catalogPri(s) { return catalogPriorityIds.some(function (p) { return s.id.indexOf(p) === 0; }) ? 0 : 1; } |
2543 | 2552 | if (sortCol) { |
2544 | 2553 | var col = columns.filter(function (c) { return c.key === sortCol; })[0]; |
2545 | 2554 | filtered.sort(function (a, b) { |
| 2555 | + var pa = catalogPri(a), pb = catalogPri(b); |
| 2556 | + if (pa !== pb) return pa - pb; |
2546 | 2557 | var va, vb; |
2547 | 2558 | if (col && col.metric) { va = getVal(a, sortCol); vb = getVal(b, sortCol); } |
2548 | 2559 | else if (sortCol === 'db_size') { va = (a.db_size_categories || []).length; vb = (b.db_size_categories || []).length; } |
|
2553 | 2564 | return sortAsc ? va - vb : vb - va; |
2554 | 2565 | }); |
2555 | 2566 | } else { |
2556 | | - filtered.sort(function (a, b) { return a._composite - b._composite; }); |
| 2567 | + filtered.sort(function (a, b) { |
| 2568 | + var pa = catalogPri(a), pb = catalogPri(b); |
| 2569 | + if (pa !== pb) return pa - pb; |
| 2570 | + return a._composite - b._composite; |
| 2571 | + }); |
2557 | 2572 | } |
2558 | 2573 | sorted = filtered; |
2559 | 2574 | renderRows(sorted); |
|
3263 | 3278 | }); |
3264 | 3279 | traces.push({ |
3265 | 3280 | x: x, y: y, mode: 'markers', type: 'scatter', name: KW_VARIANT_LABELS[variant] || variant, |
3266 | | - marker: { color: KW_VARIANT_COLORS[variant] || '#999', size: 12, line: { width: 1, color: t.text } }, |
| 3281 | + marker: { color: KW_VARIANT_COLORS[variant] || '#999', size: 12, line: { width: 0 } }, |
3267 | 3282 | hovertext: text, hoverinfo: 'text' |
3268 | 3283 | }); |
3269 | 3284 | }); |
|
0 commit comments