Performance problems with HTTPText. This is a test program for the problems.
Dependencies: EthernetNetIf mbed
main.cpp@0:fd0a4a9e317c, 2010-10-08 (annotated)
- Committer:
- shintamainjp
- Date:
- Fri Oct 08 22:06:26 2010 +0000
- Revision:
- 0:fd0a4a9e317c
- Child:
- 1:20a89656f772
Who changed what in which revision?
User | Revision | Line number | New 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 | } |