Performance problems with HTTPText. This is a test program for the problems.

Dependencies:   EthernetNetIf mbed

Committer:
shintamainjp
Date:
Fri Oct 08 22:06:26 2010 +0000
Revision:
0:fd0a4a9e317c
Child:
1:20a89656f772

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:fd0a4a9e317c 1 /**
shintamainjp 0:fd0a4a9e317c 2 * Performance problems with HTTPText.
shintamainjp 0:fd0a4a9e317c 3 *
shintamainjp 0:fd0a4a9e317c 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 0:fd0a4a9e317c 5 * http://shinta.main.jp/
shintamainjp 0:fd0a4a9e317c 6 */
shintamainjp 0:fd0a4a9e317c 7
shintamainjp 0:fd0a4a9e317c 8 #include "mbed.h"
shintamainjp 0:fd0a4a9e317c 9 #include "EthernetNetIf.h"
shintamainjp 0:fd0a4a9e317c 10 #include "HTTPClient.h"
shintamainjp 0:fd0a4a9e317c 11
shintamainjp 0:fd0a4a9e317c 12 EthernetNetIf netif;
shintamainjp 0:fd0a4a9e317c 13 Timer timer;
shintamainjp 0:fd0a4a9e317c 14
shintamainjp 0:fd0a4a9e317c 15 void test(int bufsiz);
shintamainjp 0:fd0a4a9e317c 16 int main(void);
shintamainjp 0:fd0a4a9e317c 17
shintamainjp 0:fd0a4a9e317c 18 /**
shintamainjp 0:fd0a4a9e317c 19 * Execute the test.
shintamainjp 0:fd0a4a9e317c 20 *
shintamainjp 0:fd0a4a9e317c 21 * @param bufsiz Buffer size of a HTTPText.
shintamainjp 0:fd0a4a9e317c 22 */
shintamainjp 0:fd0a4a9e317c 23 void test(int bufsiz) {
shintamainjp 0:fd0a4a9e317c 24 HTTPClient client;
shintamainjp 0:fd0a4a9e317c 25 HTTPMap map;
shintamainjp 0:fd0a4a9e317c 26 HTTPText text("text/html", bufsiz);
shintamainjp 0:fd0a4a9e317c 27
shintamainjp 0:fd0a4a9e317c 28 int sizelist[10] = {
shintamainjp 0:fd0a4a9e317c 29 8,
shintamainjp 0:fd0a4a9e317c 30 16,
shintamainjp 0:fd0a4a9e317c 31 32,
shintamainjp 0:fd0a4a9e317c 32 64,
shintamainjp 0:fd0a4a9e317c 33 128,
shintamainjp 0:fd0a4a9e317c 34 256,
shintamainjp 0:fd0a4a9e317c 35 512,
shintamainjp 0:fd0a4a9e317c 36 1024,
shintamainjp 0:fd0a4a9e317c 37 2048,
shintamainjp 0:fd0a4a9e317c 38 4096
shintamainjp 0:fd0a4a9e317c 39 };
shintamainjp 0:fd0a4a9e317c 40
shintamainjp 0:fd0a4a9e317c 41 printf("(Buffer size of a HTTPText : %d)\n", bufsiz);
shintamainjp 0:fd0a4a9e317c 42 printf("+---------+--------+----+\n");
shintamainjp 0:fd0a4a9e317c 43 printf("|File size|Time[ms]|Code|\n");
shintamainjp 0:fd0a4a9e317c 44 printf("+---------+--------+----+\n");
shintamainjp 0:fd0a4a9e317c 45 for (int i = 0; i < sizeof(sizelist) / sizeof(sizelist[0]); i++) {
shintamainjp 0:fd0a4a9e317c 46 char url[256];
shintamainjp 0:fd0a4a9e317c 47 sprintf(url, "http://mbed.org/media/uploads/shintamainjp/textfile_%dbytes.txt", sizelist[i]);
shintamainjp 0:fd0a4a9e317c 48 timer.stop();
shintamainjp 0:fd0a4a9e317c 49 timer.reset();
shintamainjp 0:fd0a4a9e317c 50 timer.start();
shintamainjp 0:fd0a4a9e317c 51 HTTPResult r = client.get(url, &text);
shintamainjp 0:fd0a4a9e317c 52 timer.stop();
shintamainjp 0:fd0a4a9e317c 53 printf("|%9d|%8d|%4d|\n", sizelist[i], timer.read_ms(), client.getHTTPResponseCode());
shintamainjp 0:fd0a4a9e317c 54 }
shintamainjp 0:fd0a4a9e317c 55 printf("+---------+--------+----+\n");
shintamainjp 0:fd0a4a9e317c 56 }
shintamainjp 0:fd0a4a9e317c 57
shintamainjp 0:fd0a4a9e317c 58 /**
shintamainjp 0:fd0a4a9e317c 59 * Entry point.
shintamainjp 0:fd0a4a9e317c 60 */
shintamainjp 0:fd0a4a9e317c 61 int main(void) {
shintamainjp 0:fd0a4a9e317c 62 int bufsizlist[10] = {
shintamainjp 0:fd0a4a9e317c 63 8,
shintamainjp 0:fd0a4a9e317c 64 16,
shintamainjp 0:fd0a4a9e317c 65 32,
shintamainjp 0:fd0a4a9e317c 66 64,
shintamainjp 0:fd0a4a9e317c 67 128,
shintamainjp 0:fd0a4a9e317c 68 256,
shintamainjp 0:fd0a4a9e317c 69 512,
shintamainjp 0:fd0a4a9e317c 70 1024,
shintamainjp 0:fd0a4a9e317c 71 2048,
shintamainjp 0:fd0a4a9e317c 72 4096
shintamainjp 0:fd0a4a9e317c 73 };
shintamainjp 0:fd0a4a9e317c 74
shintamainjp 0:fd0a4a9e317c 75 EthernetErr ethErr = netif.setup();
shintamainjp 0:fd0a4a9e317c 76 if (ethErr) {
shintamainjp 0:fd0a4a9e317c 77 error("Network setup failed.\n");
shintamainjp 0:fd0a4a9e317c 78 }
shintamainjp 0:fd0a4a9e317c 79
shintamainjp 0:fd0a4a9e317c 80 for (int i = 0; i < sizeof(bufsizlist) / sizeof(bufsizlist[0]); i++) {
shintamainjp 0:fd0a4a9e317c 81 printf("\n");
shintamainjp 0:fd0a4a9e317c 82 test(bufsizlist[i]);
shintamainjp 0:fd0a4a9e317c 83 }
shintamainjp 0:fd0a4a9e317c 84 }