[Barrelfish-users] C++ standard library performance issue
Jialin Li
nick.lijl at gmail.com
Tue Oct 20 00:07:44 CEST 2015
Hi,
I'm running a server application on barrelfish(actually Arrakis). The
server has to store some key value pairs so I used the standard library
std::unordered_map. However, I was observing the server latency getting
higher over time (with more key value pairs installed), from ~10us to a
few ms. I wrote a toy program (shown below) just to validate the result.
For the toy program, I also observed there are latency spikes every few
operations, and the latency spike increases over time. I tried the same
program on Linux and not seeing the same problem. For the C++ compiler,
I am using tools/build-toolchain.sh, which I also attached.
--------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unordered_map>
#include <list>
#include <string>
#define ITERATION 50000
using namespace std;
void randString(char * buffer, int len) {
for (int i = 0; i < len - 1; i++) {
buffer[i] = '0'+(random()%74);
}
}
int main() {
unordered_map<string, string> store;
char keybuf[32];
char valuebuf[128];
struct timeval st, ed;
memset(keybuf, 0, 32);
memset(valuebuf, 0, 128);
long int result;
unsigned long before, after;
for (long int k = 0; k < ITERATION; k++) {
gettimeofday(&st, NULL);
randString(keybuf, 32);
randString(valuebuf, 128);
string key(keybuf);
string value(valuebuf);
store[key] = value;
gettimeofday(&ed, NULL);
printf("latency %lu\n",
(ed.tv_sec-st.tv_sec)*1000000+ed.tv_usec-st.tv_usec);
}
}
Let me know if any more information is needed. Thanks in advance for the
help.
Jialin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build-toolchain.sh
Type: application/x-shellscript
Size: 4100 bytes
Desc: not available
URL: <http://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20151019/70c5a724/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stdtest.cc
Type: text/x-c++src
Size: 861 bytes
Desc: not available
URL: <http://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20151019/70c5a724/attachment-0001.bin>
More information about the Barrelfish-users
mailing list