{"action":"created","comment":{"url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments/225845494","pull_request_review_id":165530923,"id":225845494,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNTg0NTQ5NA==","diff_hunk":"@@ -177,84 +196,129 @@ VarHandlePtr GRPCClient::AsyncPrefetchVar(const std::string& ep,\n     // stub context\n     s->response_call_back_ = ProcGetResponse;\n \n+    platform::RecordEvent record_event(method, p_ctx);\n+\n     auto call = s->stub_g_.PrepareUnaryCall(\n         s->context_.get(), \"/sendrecv.SendRecvService/PrefetchVariable\", req,\n         &cq_);\n     call->StartCall();\n     call->Finish(&s->reply_, &s->status_, static_cast<void*>(s));\n+\n+    if (platform::IsProfileEnabled()) {\n+      h->Wait();\n+    }\n   });\n \n   req_count_++;\n   return h;\n }\n \n-VarHandlePtr GRPCClient::AsyncSendBatchBarrier(const std::string& ep,\n-                                               int64_t time_out) {\n+VarHandlePtr GRPCClient::AsyncSendBatchBarrier(\n+    const std::string& ep, const platform::DeviceContext& ctx,\n+    int64_t time_out) {\n   const auto ch = GetChannel(ep);\n \n   BatchBarrierProcessor* s = new BatchBarrierProcessor(ch);\n-  VarHandlePtr h(new VarHandle(ep, \"BatchBarrier\", BATCH_BARRIER_MESSAGE,\n-                               nullptr, nullptr));\n+  const std::string method = \"BatchBarrierRPC\";\n+  VarHandlePtr h(\n+      new VarHandle(ep, method, BATCH_BARRIER_MESSAGE, &ctx, nullptr));\n   s->Prepare(h, time_out);\n \n   sendrecv::VariableMessage req;\n   req.set_varname(BATCH_BARRIER_MESSAGE);\n+\n+  platform::RecordEvent record_event(method, &ctx);\n+\n   auto rpc = s->stub_->AsyncSendVariable(s->context_.get(), req, &cq_);\n   rpc->Finish(&s->reply_, &s->status_, reinterpret_cast<void*>(s));\n   req_count_++;\n+\n+  if (platform::IsProfileEnabled()) {\n+    h->Wait();\n+  }\n+\n   return h;\n }\n \n-VarHandlePtr GRPCClient::AsyncSendFetchBarrier(const std::string& ep,\n-                                               int64_t time_out) {\n+VarHandlePtr GRPCClient::AsyncSendFetchBarrier(\n+    const std::string& ep, const platform::DeviceContext& ctx,\n+    int64_t time_out) {\n   const auto ch = GetChannel(ep);\n   FetchBarrierProcessor* s = new FetchBarrierProcessor(ch);\n-  VarHandlePtr h(new VarHandle(ep, \"FetchBarrier\", FETCH_BARRIER_MESSAGE,\n-                               nullptr, nullptr));\n+  const std::string method = \"FetchBarrierRPC\";\n+  VarHandlePtr h(\n+      new VarHandle(ep, method, FETCH_BARRIER_MESSAGE, &ctx, nullptr));\n   s->Prepare(h, time_out);\n \n   sendrecv::VariableMessage req;\n   req.set_varname(FETCH_BARRIER_MESSAGE);\n+\n+  platform::RecordEvent record_event(method, &ctx);\n+\n   auto rpc = s->stub_->AsyncGetVariable(s->context_.get(), req, &cq_);\n   rpc->Finish(&s->reply_, &s->status_, reinterpret_cast<void*>(s));\n   req_count_++;\n+\n+  if (platform::IsProfileEnabled()) {\n+    h->Wait();\n+  }\n+\n   return h;\n }\n \n VarHandlePtr GRPCClient::AsyncSendComplete(const std::string& ep,\n+                                           const platform::DeviceContext& ctx,\n                                            int64_t time_out) {\n   const auto ch = GetChannel(ep);\n \n   BatchBarrierProcessor* s = new BatchBarrierProcessor(ch);\n-  VarHandlePtr h(\n-      new VarHandle(ep, \"SendComplete\", COMPLETE_MESSAGE, nullptr, nullptr));\n+  const std::string method = \"SendCompleteRPC\";\n+  VarHandlePtr h(new VarHandle(ep, method, COMPLETE_MESSAGE, &ctx, nullptr));\n   s->Prepare(h, time_out);\n \n   sendrecv::VariableMessage req;\n   req.set_varname(COMPLETE_MESSAGE);\n+\n+  platform::RecordEvent record_event(method, &ctx);\n+\n   auto rpc = s->stub_->AsyncSendVariable(s->context_.get(), req, &cq_);\n   rpc->Finish(&s->reply_, &s->status_, reinterpret_cast<void*>(s));\n   req_count_++;\n+\n+  if (platform::IsProfileEnabled()) {\n+    h->Wait();\n+  }\n+\n   return h;\n }\n \n-VarHandlePtr GRPCClient::AsyncCheckpointNotify(const std::string& ep,\n-                                               const std::string& dir,\n-                                               int64_t time_out) {\n+VarHandlePtr GRPCClient::AsyncCheckpointNotify(\n+    const std::string& ep, const std::string& dir,\n+    const platform::DeviceContext& ctx, int64_t time_out) {\n   const auto ch = GetChannel(ep);\n \n   CheckpointNotifyProcessor* s = new CheckpointNotifyProcessor(ch);\n-  VarHandlePtr h(new VarHandle(ep, \"CheckPointNotify\", CHECKPOINT_SAVE_MESSAGE,\n-                               nullptr, nullptr));\n+\n+  const std::string method = \"CheckPointNotifyRPC\";\n+\n+  VarHandlePtr h(\n+      new VarHandle(ep, method, CHECKPOINT_SAVE_MESSAGE, &ctx, nullptr));\n   s->Prepare(h, time_out);\n \n   sendrecv::VariableMessage req;\n   req.set_varname(CHECKPOINT_SAVE_MESSAGE);\n   req.set_out_varname(dir);\n \n+  platform::RecordEvent record_event(method, &ctx);","path":"paddle/fluid/operators/distributed/grpc_client.cc","position":226,"original_position":226,"commit_id":"6b5933f24740991fe2c9b2f857b31b57c771d769","original_commit_id":"40934b3d40615fad12ef990f21185669b6e2ebc0","user":{"login":"gongweibao","id":10721757,"node_id":"MDQ6VXNlcjEwNzIxNzU3","avatar_url":"https://avatars3.githubusercontent.com/u/10721757?v=4","gravatar_id":"","url":"https://api.github.com/users/gongweibao","html_url":"https://github.com/gongweibao","followers_url":"https://api.github.com/users/gongweibao/followers","following_url":"https://api.github.com/users/gongweibao/following{/other_user}","gists_url":"https://api.github.com/users/gongweibao/gists{/gist_id}","starred_url":"https://api.github.com/users/gongweibao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gongweibao/subscriptions","organizations_url":"https://api.github.com/users/gongweibao/orgs","repos_url":"https://api.github.com/users/gongweibao/repos","events_url":"https://api.github.com/users/gongweibao/events{/privacy}","received_events_url":"https://api.github.com/users/gongweibao/received_events","type":"User","site_admin":false},"body":"好的。看代码不仔细，原来还有一个彩蛋。感谢!","created_at":"2018-10-17T09:20:23Z","updated_at":"2018-10-17T09:20:24Z","html_url":"https://github.com/PaddlePaddle/Paddle/pull/13900#discussion_r225845494","pull_request_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13900","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments/225845494"},"html":{"href":"https://github.com/PaddlePaddle/Paddle/pull/13900#discussion_r225845494"},"pull_request":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13900"}},"in_reply_to_id":225783798},"pull_request":{"url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13900","id":222877365,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIyODc3MzY1","html_url":"https://github.com/PaddlePaddle/Paddle/pull/13900","diff_url":"https://github.com/PaddlePaddle/Paddle/pull/13900.diff","patch_url":"https://github.com/PaddlePaddle/Paddle/pull/13900.patch","issue_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13900","number":13900,"state":"open","locked":false,"title":"Add rpc timeline.","user":{"login":"gongweibao","id":10721757,"node_id":"MDQ6VXNlcjEwNzIxNzU3","avatar_url":"https://avatars3.githubusercontent.com/u/10721757?v=4","gravatar_id":"","url":"https://api.github.com/users/gongweibao","html_url":"https://github.com/gongweibao","followers_url":"https://api.github.com/users/gongweibao/followers","following_url":"https://api.github.com/users/gongweibao/following{/other_user}","gists_url":"https://api.github.com/users/gongweibao/gists{/gist_id}","starred_url":"https://api.github.com/users/gongweibao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gongweibao/subscriptions","organizations_url":"https://api.github.com/users/gongweibao/orgs","repos_url":"https://api.github.com/users/gongweibao/repos","events_url":"https://api.github.com/users/gongweibao/events{/privacy}","received_events_url":"https://api.github.com/users/gongweibao/received_events","type":"User","site_admin":false},"body":"![image](https://user-images.githubusercontent.com/10721757/47015402-79d73980-d17f-11e8-91c0-bec4d66b9d1b.png)\r\n![image](https://user-images.githubusercontent.com/10721757/47015417-852a6500-d17f-11e8-9803-ec967ee32e2d.png)\r\n","created_at":"2018-10-15T11:49:12Z","updated_at":"2018-10-17T09:20:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"02cdf6cb0378e6018d12a69ea1fe84cca46bd12f","assignee":null,"assignees":[],"requested_reviewers":[{"login":"Yancey1989","id":1426912,"node_id":"MDQ6VXNlcjE0MjY5MTI=","avatar_url":"https://avatars2.githubusercontent.com/u/1426912?v=4","gravatar_id":"","url":"https://api.github.com/users/Yancey1989","html_url":"https://github.com/Yancey1989","followers_url":"https://api.github.com/users/Yancey1989/followers","following_url":"https://api.github.com/users/Yancey1989/following{/other_user}","gists_url":"https://api.github.com/users/Yancey1989/gists{/gist_id}","starred_url":"https://api.github.com/users/Yancey1989/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Yancey1989/subscriptions","organizations_url":"https://api.github.com/users/Yancey1989/orgs","repos_url":"https://api.github.com/users/Yancey1989/repos","events_url":"https://api.github.com/users/Yancey1989/events{/privacy}","received_events_url":"https://api.github.com/users/Yancey1989/received_events","type":"User","site_admin":false},{"login":"jacquesqiao","id":3048612,"node_id":"MDQ6VXNlcjMwNDg2MTI=","avatar_url":"https://avatars0.githubusercontent.com/u/3048612?v=4","gravatar_id":"","url":"https://api.github.com/users/jacquesqiao","html_url":"https://github.com/jacquesqiao","followers_url":"https://api.github.com/users/jacquesqiao/followers","following_url":"https://api.github.com/users/jacquesqiao/following{/other_user}","gists_url":"https://api.github.com/users/jacquesqiao/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquesqiao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquesqiao/subscriptions","organizations_url":"https://api.github.com/users/jacquesqiao/orgs","repos_url":"https://api.github.com/users/jacquesqiao/repos","events_url":"https://api.github.com/users/jacquesqiao/events{/privacy}","received_events_url":"https://api.github.com/users/jacquesqiao/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13900/commits","review_comments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13900/comments","review_comment_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13900/comments","statuses_url":"https://api.github.com/repos/PaddlePaddle/Paddle/statuses/6b5933f24740991fe2c9b2f857b31b57c771d769","head":{"label":"gongweibao:memcpytimeline","ref":"memcpytimeline","sha":"6b5933f24740991fe2c9b2f857b31b57c771d769","user":{"login":"gongweibao","id":10721757,"node_id":"MDQ6VXNlcjEwNzIxNzU3","avatar_url":"https://avatars3.githubusercontent.com/u/10721757?v=4","gravatar_id":"","url":"https://api.github.com/users/gongweibao","html_url":"https://github.com/gongweibao","followers_url":"https://api.github.com/users/gongweibao/followers","following_url":"https://api.github.com/users/gongweibao/following{/other_user}","gists_url":"https://api.github.com/users/gongweibao/gists{/gist_id}","starred_url":"https://api.github.com/users/gongweibao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gongweibao/subscriptions","organizations_url":"https://api.github.com/users/gongweibao/orgs","repos_url":"https://api.github.com/users/gongweibao/repos","events_url":"https://api.github.com/users/gongweibao/events{/privacy}","received_events_url":"https://api.github.com/users/gongweibao/received_events","type":"User","site_admin":false},"repo":{"id":82279237,"node_id":"MDEwOlJlcG9zaXRvcnk4MjI3OTIzNw==","name":"Paddle","full_name":"gongweibao/Paddle","private":false,"owner":{"login":"gongweibao","id":10721757,"node_id":"MDQ6VXNlcjEwNzIxNzU3","avatar_url":"https://avatars3.githubusercontent.com/u/10721757?v=4","gravatar_id":"","url":"https://api.github.com/users/gongweibao","html_url":"https://github.com/gongweibao","followers_url":"https://api.github.com/users/gongweibao/followers","following_url":"https://api.github.com/users/gongweibao/following{/other_user}","gists_url":"https://api.github.com/users/gongweibao/gists{/gist_id}","starred_url":"https://api.github.com/users/gongweibao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gongweibao/subscriptions","organizations_url":"https://api.github.com/users/gongweibao/orgs","repos_url":"https://api.github.com/users/gongweibao/repos","events_url":"https://api.github.com/users/gongweibao/events{/privacy}","received_events_url":"https://api.github.com/users/gongweibao/received_events","type":"User","site_admin":false},"html_url":"https://github.com/gongweibao/Paddle","description":"PArallel Distributed Deep LEarning","fork":true,"url":"https://api.github.com/repos/gongweibao/Paddle","forks_url":"https://api.github.com/repos/gongweibao/Paddle/forks","keys_url":"https://api.github.com/repos/gongweibao/Paddle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gongweibao/Paddle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gongweibao/Paddle/teams","hooks_url":"https://api.github.com/repos/gongweibao/Paddle/hooks","issue_events_url":"https://api.github.com/repos/gongweibao/Paddle/issues/events{/number}","events_url":"https://api.github.com/repos/gongweibao/Paddle/events","assignees_url":"https://api.github.com/repos/gongweibao/Paddle/assignees{/user}","branches_url":"https://api.github.com/repos/gongweibao/Paddle/branches{/branch}","tags_url":"https://api.github.com/repos/gongweibao/Paddle/tags","blobs_url":"https://api.github.com/repos/gongweibao/Paddle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gongweibao/Paddle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gongweibao/Paddle/git/refs{/sha}","trees_url":"https://api.github.com/repos/gongweibao/Paddle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gongweibao/Paddle/statuses/{sha}","languages_url":"https://api.github.com/repos/gongweibao/Paddle/languages","stargazers_url":"https://api.github.com/repos/gongweibao/Paddle/stargazers","contributors_url":"https://api.github.com/repos/gongweibao/Paddle/contributors","subscribers_url":"https://api.github.com/repos/gongweibao/Paddle/subscribers","subscription_url":"https://api.github.com/repos/gongweibao/Paddle/subscription","commits_url":"https://api.github.com/repos/gongweibao/Paddle/commits{/sha}","git_commits_url":"https://api.github.com/repos/gongweibao/Paddle/git/commits{/sha}","comments_url":"https://api.github.com/repos/gongweibao/Paddle/comments{/number}","issue_comment_url":"https://api.github.com/repos/gongweibao/Paddle/issues/comments{/number}","contents_url":"https://api.github.com/repos/gongweibao/Paddle/contents/{+path}","compare_url":"https://api.github.com/repos/gongweibao/Paddle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gongweibao/Paddle/merges","archive_url":"https://api.github.com/repos/gongweibao/Paddle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gongweibao/Paddle/downloads","issues_url":"https://api.github.com/repos/gongweibao/Paddle/issues{/number}","pulls_url":"https://api.github.com/repos/gongweibao/Paddle/pulls{/number}","milestones_url":"https://api.github.com/repos/gongweibao/Paddle/milestones{/number}","notifications_url":"https://api.github.com/repos/gongweibao/Paddle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gongweibao/Paddle/labels{/name}","releases_url":"https://api.github.com/repos/gongweibao/Paddle/releases{/id}","deployments_url":"https://api.github.com/repos/gongweibao/Paddle/deployments","created_at":"2017-02-17T09:16:16Z","updated_at":"2018-05-30T02:55:18Z","pushed_at":"2018-10-17T06:15:21Z","git_url":"git://github.com/gongweibao/Paddle.git","ssh_url":"git@github.com:gongweibao/Paddle.git","clone_url":"https://github.com/gongweibao/Paddle.git","svn_url":"https://github.com/gongweibao/Paddle","homepage":"http://www.paddlepaddle.org/","size":96045,"stargazers_count":1,"watchers_count":1,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":1,"default_branch":"develop"}},"base":{"label":"PaddlePaddle:develop","ref":"develop","sha":"7fb5b66ac2e625cfcb8bc1154ed2b60ffaeea8c2","user":{"login":"PaddlePaddle","id":23534030,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzNTM0MDMw","avatar_url":"https://avatars3.githubusercontent.com/u/23534030?v=4","gravatar_id":"","url":"https://api.github.com/users/PaddlePaddle","html_url":"https://github.com/PaddlePaddle","followers_url":"https://api.github.com/users/PaddlePaddle/followers","following_url":"https://api.github.com/users/PaddlePaddle/following{/other_user}","gists_url":"https://api.github.com/users/PaddlePaddle/gists{/gist_id}","starred_url":"https://api.github.com/users/PaddlePaddle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PaddlePaddle/subscriptions","organizations_url":"https://api.github.com/users/PaddlePaddle/orgs","repos_url":"https://api.github.com/users/PaddlePaddle/repos","events_url":"https://api.github.com/users/PaddlePaddle/events{/privacy}","received_events_url":"https://api.github.com/users/PaddlePaddle/received_events","type":"Organization","site_admin":false},"repo":{"id":65711522,"node_id":"MDEwOlJlcG9zaXRvcnk2NTcxMTUyMg==","name":"Paddle","full_name":"PaddlePaddle/Paddle","private":false,"owner":{"login":"PaddlePaddle","id":23534030,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzNTM0MDMw","avatar_url":"https://avatars3.githubusercontent.com/u/23534030?v=4","gravatar_id":"","url":"https://api.github.com/users/PaddlePaddle","html_url":"https://github.com/PaddlePaddle","followers_url":"https://api.github.com/users/PaddlePaddle/followers","following_url":"https://api.github.com/users/PaddlePaddle/following{/other_user}","gists_url":"https://api.github.com/users/PaddlePaddle/gists{/gist_id}","starred_url":"https://api.github.com/users/PaddlePaddle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PaddlePaddle/subscriptions","organizations_url":"https://api.github.com/users/PaddlePaddle/orgs","repos_url":"https://api.github.com/users/PaddlePaddle/repos","events_url":"https://api.github.com/users/PaddlePaddle/events{/privacy}","received_events_url":"https://api.github.com/users/PaddlePaddle/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PaddlePaddle/Paddle","description":"PArallel Distributed Deep LEarning","fork":false,"url":"https://api.github.com/repos/PaddlePaddle/Paddle","forks_url":"https://api.github.com/repos/PaddlePaddle/Paddle/forks","keys_url":"https://api.github.com/repos/PaddlePaddle/Paddle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PaddlePaddle/Paddle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PaddlePaddle/Paddle/teams","hooks_url":"https://api.github.com/repos/PaddlePaddle/Paddle/hooks","issue_events_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/events{/number}","events_url":"https://api.github.com/repos/PaddlePaddle/Paddle/events","assignees_url":"https://api.github.com/repos/PaddlePaddle/Paddle/assignees{/user}","branches_url":"https://api.github.com/repos/PaddlePaddle/Paddle/branches{/branch}","tags_url":"https://api.github.com/repos/PaddlePaddle/Paddle/tags","blobs_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/refs{/sha}","trees_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PaddlePaddle/Paddle/statuses/{sha}","languages_url":"https://api.github.com/repos/PaddlePaddle/Paddle/languages","stargazers_url":"https://api.github.com/repos/PaddlePaddle/Paddle/stargazers","contributors_url":"https://api.github.com/repos/PaddlePaddle/Paddle/contributors","subscribers_url":"https://api.github.com/repos/PaddlePaddle/Paddle/subscribers","subscription_url":"https://api.github.com/repos/PaddlePaddle/Paddle/subscription","commits_url":"https://api.github.com/repos/PaddlePaddle/Paddle/commits{/sha}","git_commits_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/commits{/sha}","comments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/comments{/number}","issue_comment_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/comments{/number}","contents_url":"https://api.github.com/repos/PaddlePaddle/Paddle/contents/{+path}","compare_url":"https://api.github.com/repos/PaddlePaddle/Paddle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PaddlePaddle/Paddle/merges","archive_url":"https://api.github.com/repos/PaddlePaddle/Paddle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PaddlePaddle/Paddle/downloads","issues_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues{/number}","pulls_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls{/number}","milestones_url":"https://api.github.com/repos/PaddlePaddle/Paddle/milestones{/number}","notifications_url":"https://api.github.com/repos/PaddlePaddle/Paddle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PaddlePaddle/Paddle/labels{/name}","releases_url":"https://api.github.com/repos/PaddlePaddle/Paddle/releases{/id}","deployments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/deployments","created_at":"2016-08-15T06:59:08Z","updated_at":"2018-10-17T07:28:20Z","pushed_at":"2018-10-17T09:17:10Z","git_url":"git://github.com/PaddlePaddle/Paddle.git","ssh_url":"git@github.com:PaddlePaddle/Paddle.git","clone_url":"https://github.com/PaddlePaddle/Paddle.git","svn_url":"https://github.com/PaddlePaddle/Paddle","homepage":"http://www.paddlepaddle.org/","size":137088,"stargazers_count":7619,"watchers_count":7619,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2076,"mirror_url":null,"archived":false,"open_issues_count":720,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":2076,"open_issues":720,"watchers":7619,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13900"},"html":{"href":"https://github.com/PaddlePaddle/Paddle/pull/13900"},"issue":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13900"},"comments":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13900/comments"},"review_comments":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13900/comments"},"review_comment":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13900/commits"},"statuses":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/statuses/6b5933f24740991fe2c9b2f857b31b57c771d769"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"gongweibao"}}