34000 Requests Per Second on a Modest Laptop: A Quick and Simple Guide

How to build a high performance application server and a C API client for it.


This content originally appeared on HackerNoon and was authored by Golf-Lang

Here's a video showing how to create and start a Golf application server, and how to connect to it and make requests from a C client (or from any language that supports C API extension):

https://www.youtube.com/watch?v=P2bdPP-3ZMY&embedable=true

\n Here’s a step-by-step in case you’re not a video person.

\n Create a new directory for the Golf server and also for the C API client: \n

mkdir -p srv-example
cd srv-example
mkdir -p client

\n Create file "srv.golf" and copy this: \n

 begin-handler /srv public
     silent-header
     @Hello world!
 end-handler

\n Create a Golf application server: \n

gg -k hello

\n Build Golf application server (exclude client directory as it contains C API client): \n

gg -q --exclude-dir=client

\n Start the application server (a single-process server in this case): \n

mgrg -w 1 hello

\n Next, go to the C API client directory: \n

cd client

\n Then create a C file "cli.c" and copy this: \n

 #include "gcli.h"

 int golf_client (gg_cli *req, char *connection, char *method, char *app_path, char *request, char *url_params);

 int golf_client (gg_cli *req, char *connection, char *method, char *app_path, char *request, char *url_params)
 {
     memset ((char*)req, 0, sizeof(gg_cli));
     req->server = connection;
     req->req_method = method;
     req->app_path = app_path;
     req->req = request;
     req->url_params = url_params;
     return gg_cli_request (req);
 }

 void main ()
 {
     int i;
     for (i = 0; i < 100000; i++)
     {
         gg_cli req;
         int res = golf_client (&req, "/var/lib/gg/hello/sock/sock", "GET", "/hello", "/srv", "/");
         if (res != GG_OKAY) printf("Request failed [%d] [%s]\n", res, req.errm);
         else printf("%s", gg_cli_data(&req));
         gg_cli_delete(&req);
     }
 }

\n Compile the client: \n

gcc -o cli cli.c $(gg -i) -O3

\n Run it: \n

./cli

\n The result is "Hello world!" 1,000,000 times from each request invocation. Learn about Golf at golf-lang.com


This content originally appeared on HackerNoon and was authored by Golf-Lang


Print Share Comment Cite Upload Translate Updates
APA

Golf-Lang | Sciencx (2025-03-04T00:45:14+00:00) 34000 Requests Per Second on a Modest Laptop: A Quick and Simple Guide. Retrieved from https://www.scien.cx/2025/03/04/34000-requests-per-second-on-a-modest-laptop-a-quick-and-simple-guide/

MLA
" » 34000 Requests Per Second on a Modest Laptop: A Quick and Simple Guide." Golf-Lang | Sciencx - Tuesday March 4, 2025, https://www.scien.cx/2025/03/04/34000-requests-per-second-on-a-modest-laptop-a-quick-and-simple-guide/
HARVARD
Golf-Lang | Sciencx Tuesday March 4, 2025 » 34000 Requests Per Second on a Modest Laptop: A Quick and Simple Guide., viewed ,<https://www.scien.cx/2025/03/04/34000-requests-per-second-on-a-modest-laptop-a-quick-and-simple-guide/>
VANCOUVER
Golf-Lang | Sciencx - » 34000 Requests Per Second on a Modest Laptop: A Quick and Simple Guide. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/03/04/34000-requests-per-second-on-a-modest-laptop-a-quick-and-simple-guide/
CHICAGO
" » 34000 Requests Per Second on a Modest Laptop: A Quick and Simple Guide." Golf-Lang | Sciencx - Accessed . https://www.scien.cx/2025/03/04/34000-requests-per-second-on-a-modest-laptop-a-quick-and-simple-guide/
IEEE
" » 34000 Requests Per Second on a Modest Laptop: A Quick and Simple Guide." Golf-Lang | Sciencx [Online]. Available: https://www.scien.cx/2025/03/04/34000-requests-per-second-on-a-modest-laptop-a-quick-and-simple-guide/. [Accessed: ]
rf:citation
» 34000 Requests Per Second on a Modest Laptop: A Quick and Simple Guide | Golf-Lang | Sciencx | https://www.scien.cx/2025/03/04/34000-requests-per-second-on-a-modest-laptop-a-quick-and-simple-guide/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.