Hi All:
  We use libprocess as our underlying communication library, but we find it’s 
performance don’t meet, we want to optimize it, for example:
  ‘send’ function implementation one metadata has four times memory copy,
1. ProtobufMessage SerializeToString then processbase ‘encode’ construct string 
once;
2. In ‘encode’ function Message body copy again;
3. In MessageEncoder in order to construct HTTP Request, copy again;

4.       MessageEncoder return copy again;
  How to optimize this scenario may be useful.
  Also , in libprocess it has so many lock:

1.       SocketManager:   std::recursive_mutex mutex;

2.       ProcessManager:  std::recursive_mutex processes_mutex;  
std::recursive_mutex runq_mutex; std::recursive_mutex firewall_mutex;
In particular, everytime event enqueue/dequeue both need to get lock, maybe use 
lookfree struct is better.

If have any optimize suggestion or discussion, please let me know, thanks.

[cid:[email protected]]


Bingqiang Pang(庞兵强)


Distributed and Parallel Software Lab
Huawei Technologies Co., Ltd.
Email:[email protected]<mailto:[email protected]>



Reply via email to