MCPcopy Create free account
hub / github.com/SmingHub/Sming / profileHttpHeaders

Method profileHttpHeaders

tests/HostTests/modules/Network/Http.cpp:59–121  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57 }
58
59 void profileHttpHeaders()
60 {
61 Serial.println(_F("\r\nPROFILING"));
62
63 // Allocate everything on the heap so we can track memory usage
64 auto freeHeap = system_get_free_heap_size();
65
66 auto headersPtr = new HttpHeaders;
67 HttpHeaders& headers = *headersPtr;
68
69 // Set header values
70 ElapseTimer timer;
71 headers[HTTP_HEADER_CONTENT_ENCODING] = _F("gzip");
72 headers[HTTP_HEADER_CONTENT_LENGTH] = 6042;
73 headers[HTTP_HEADER_ETAG] = _F("00f-3d-179a0-0");
74 headers[HTTP_HEADER_CONNECTION] = _F("keep-alive");
75 headers[HTTP_HEADER_SERVER] = _F("HttpServer/Sming");
76 headers[HTTP_HEADER_CONTENT_TYPE] = toString(MIME_JS);
77 headers[HTTP_HEADER_CACHE_CONTROL] = F("max-age=31536000, public");
78 headers[HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN] = "*";
79 auto standardElapsed = timer.elapsedTime();
80 headers[F("X-Served-By")] = _F("Donkey Kong");
81 headers[F("Vary")] = _F("Accept-Encoding");
82 headers[F("X-Fastly-Request-ID")] = _F("38ef411e0ec3bf681d29d8b4b51f3516d3ef9e03");
83 auto totalElapsed = timer.elapsedTime();
84 Serial.println(_F("Set header values"));
85 Serial << _F(" Elapsed standard: ") << standardElapsed.toString() << ", total: " << totalElapsed.toString()
86 << ", heap used: " << freeHeap - system_get_free_heap_size() << endl;
87
88 // Query header value by field name
89 auto queryByEnum = [&](HttpHeaderFieldName name) {
90 Serial << _F(" header[\"") << headers.toString(name) << "\"]: " << headers[name] << endl;
91 };
92 auto queryByString = [&](const String& name) {
93 Serial << _F(" header[\"") << name << "\"]: " << headers[name] << endl;
94 };
95 Serial.println(_F("Query header values"));
96 timer.start();
97 queryByEnum(HTTP_HEADER_CONTENT_ENCODING);
98 queryByEnum(HTTP_HEADER_CONTENT_LENGTH);
99 queryByEnum(HTTP_HEADER_ETAG);
100 queryByEnum(HTTP_HEADER_CONNECTION);
101 queryByEnum(HTTP_HEADER_SERVER);
102 queryByEnum(HTTP_HEADER_CONTENT_TYPE);
103 queryByEnum(HTTP_HEADER_CACHE_CONTROL);
104 queryByEnum(HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN);
105 standardElapsed = timer.elapsedTime();
106 queryByString("X-Served-By");
107 queryByString("Vary");
108 queryByString("X-Fastly-Request-ID");
109 totalElapsed = timer.elapsedTime();
110 Serial << _F(" Elapsed standard: ") << standardElapsed << ", total: " << totalElapsed << endl;
111 Serial << _F(" Elapsed standard: ") << standardElapsed.toString() << ", total: " << totalElapsed.toString()
112 << endl;
113
114 // Print header values - accessed by index
115 Serial << _F("Printing ") << headers.count() << _F(" headers") << endl;
116 timer.start();

Callers

nothing calls this directly

Calls 8

printlnMethod · 0.80
elapsedTimeMethod · 0.80
toStringFunction · 0.50
FFunction · 0.50
toStringMethod · 0.45
startMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected