My app uses PyCurl to upload multiple files one by one. It works all good with all cURL options and CPU consumption remains below 1%. When I add MAX_SEND_SPEED_LARGE option to throttle bandwidth, CPU consumption goes to 100%.
c.setopt(c.MAX_SEND_SPEED_LARGE, int(rate_limit))
Further investigation reveals, it only happens on OS X 10.9
If yes, I would say you may have hit a bug that has been fixed in libcurl 7.31.0, i.e curl_easy_perform: avoid busy-looping:
The patch can be seen here.