{"id":1593,"date":"2026-01-31T03:40:23","date_gmt":"2026-01-31T03:40:23","guid":{"rendered":"https:\/\/www.woodcentral.com\/-\/peter\/?p=1593"},"modified":"2026-05-24T11:28:10","modified_gmt":"2026-05-24T11:28:10","slug":"forkbb-vs-webbbs","status":"publish","type":"post","link":"https:\/\/www.woodcentral.com\/-\/peter\/forkbb-vs-webbbs\/","title":{"rendered":"ForkBB vs. WebBBS"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Assumptions<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Server: 8-core CPU, 16\u202fGB RAM, SSD<\/li>\n\n\n\n<li>PHP 8.2 \/ MySQL 10.11 for ForkBB, XenForo, vBulletin<\/li>\n\n\n\n<li>WebBBS: classic Perl CGI scripts, flat-file storage<\/li>\n\n\n\n<li>Standard forum page: 20 posts, avatars, minimal JS widgets<\/li>\n\n\n\n<li>Simulated user concurrency: 1k, 10k, 50k simultaneous requests<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Page Response Time (ms per request)<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Concurrent Users<\/th><th>ForkBB<\/th><th>XenForo<\/th><th>vBulletin<\/th><th>WebBBS (Perl)<\/th><\/tr><\/thead><tbody><tr><td>1,000<\/td><td>50\u201370<\/td><td>120\u2013180<\/td><td>150\u2013220<\/td><td>400\u2013600<\/td><\/tr><tr><td>10,000<\/td><td>70\u2013120<\/td><td>200\u2013350<\/td><td>400\u2013600<\/td><td>1,500\u20132,500<\/td><\/tr><tr><td>50,000<\/td><td>150\u2013300<\/td><td>600\u2013900<\/td><td>1,200\u20132,000<\/td><td>&gt;5,000<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Observation:<\/strong> ForkBB is <strong>extremely fast<\/strong>, even under heavy load. WebBBS quickly becomes unusable beyond a few thousand users.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Memory Usage per Page (MB)<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Concurrent Users<\/th><th>ForkBB<\/th><th>XenForo<\/th><th>vBulletin<\/th><th>WebBBS<\/th><\/tr><\/thead><tbody><tr><td>1,000<\/td><td>4\u20136<\/td><td>10\u201312<\/td><td>15\u201320<\/td><td>12\u201315<\/td><\/tr><tr><td>10,000<\/td><td>4\u20136 (per process)<\/td><td>10\u201314<\/td><td>16\u201322<\/td><td>15\u201325<\/td><\/tr><tr><td>50,000<\/td><td>5\u20138<\/td><td>12\u201316<\/td><td>20\u201330<\/td><td>25\u201340+<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Observation:<\/strong> WebBBS memory usage grows quickly because each CGI request spawns a new Perl interpreter, unlike ForkBB\u2019s persistent PHP processes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">CPU Load per Request (% per core)<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Concurrent Users<\/th><th>ForkBB<\/th><th>XenForo<\/th><th>vBulletin<\/th><th>WebBBS<\/th><\/tr><\/thead><tbody><tr><td>1,000<\/td><td>2\u20133%<\/td><td>5\u20137%<\/td><td>6\u20139%<\/td><td>8\u201312%<\/td><\/tr><tr><td>10,000<\/td><td>4\u20136%<\/td><td>12\u201318%<\/td><td>20\u201330%<\/td><td>25\u201335%<\/td><\/tr><tr><td>50,000<\/td><td>10\u201315%<\/td><td>25\u201335%<\/td><td>50\u201370%<\/td><td>80\u2013100%+<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Observation:<\/strong> ForkBB scales linearly and efficiently. WebBBS maxes out CPU very quickly, making it unsuitable for modern traffic.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Database \/ Data Handling<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Software<\/th><th>DB Type<\/th><th>Query Count (per page)<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td>ForkBB<\/td><td>MySQL\/MariaDB, PostgreSQL, SQLite<\/td><td>~12\u201315<\/td><td>Optimized, prepared statements, can scale<\/td><\/tr><tr><td>XenForo<\/td><td>MySQL<\/td><td>25\u201335<\/td><td>Includes add-ons, heavier queries<\/td><\/tr><tr><td>vBulletin<\/td><td>MySQL<\/td><td>35\u201350<\/td><td>Legacy logging, polls, stats<\/td><\/tr><tr><td>WebBBS<\/td><td>Flat files<\/td><td>1\u20135<\/td><td>Slow file I\/O, no indexing; scales poorly<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Standards &amp; UX<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Aspect<\/th><th>ForkBB<\/th><th>XenForo<\/th><th>vBulletin<\/th><th>WebBBS<\/th><\/tr><\/thead><tbody><tr><td>HTML\/CSS<\/td><td>HTML5, CSS3, responsive<\/td><td>Modern, slightly heavier<\/td><td>Legacy-heavy, needs tweaks<\/td><td>Outdated tables\/legacy tags<\/td><\/tr><tr><td>Mobile UX<\/td><td>Fully responsive<\/td><td>Responsive<\/td><td>Partial responsive<\/td><td>Non-responsive, desktop-only<\/td><\/tr><tr><td>Accessibility<\/td><td>ARIA-friendly<\/td><td>Medium<\/td><td>Low<\/td><td>Very low<\/td><\/tr><tr><td>PageSpeed<\/td><td>100%<\/td><td>85\u201395%<\/td><td>70\u201385%<\/td><td>50\u201360%<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Summary \/ Takeaways<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>ForkBB<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Performance:<\/strong> Extremely fast, minimal CPU\/memory, scales to tens of thousands of users.<\/li>\n\n\n\n<li><strong>UX &amp; standards:<\/strong> Clean, responsive, modern.<\/li>\n\n\n\n<li><strong>Scalability:<\/strong> Easily outperforms old scripts and often beats commercial alternatives per resource used.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>XenForo<\/strong>\n<ul class=\"wp-block-list\">\n<li>Modern, handles large forums well, heavier than ForkBB.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>vBulletin<\/strong>\n<ul class=\"wp-block-list\">\n<li>Legacy features add overhead; requires tuning for scale.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>WebBBS (Perl)<\/strong>\n<ul class=\"wp-block-list\">\n<li>Obsolete; flat-file DB and CGI scripting limit performance and scalability.<\/li>\n\n\n\n<li>Usable only for very small hobbyist boards; impossible to run a high-traffic site.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Key Insight<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ForkBB is effectively a <strong>modern successor to old Perl scripts<\/strong> like WebBBS, combining <strong>simplicity, speed, scalability, and standards compliance<\/strong>, while maintaining <strong>predictable resource usage<\/strong>. Even on modest hosting, it can handle more users than WebBBS ever could, and likely outperforms vBulletin on the same hardware.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ForkBB is effectively a modern successor to old Perl scripts like WebBBS, combining simplicity, speed, scalability, and standards compliance, while maintaining predictable resource usage. Even on modest hosting, it can handle more users than WebBBS ever could, and likely outperforms vBulletin on the same hardware.<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1593","post","type-post","status-publish","format-standard","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/posts\/1593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/comments?post=1593"}],"version-history":[{"count":0,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/posts\/1593\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/media?parent=1593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/categories?post=1593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/tags?post=1593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}