小编Aar*_*ron的帖子

如何优化在runtime.osyield和runtime.usleep中花费最多时间的golang程序

我一直在努力优化分析社交图数据的代码(有很多帮助来自https://blog.golang.org/profiling-go-programs),我已经成功地重做了很多慢速代码.

所有数据首先从db加载到内存中,并从那里进行数据分析显示CPU限制(最大内存消耗<10MB,CPU1 @ 100%)

但是现在我程序的大部分时间似乎都在runtime.osyield和runtime.usleep中.有什么方法可以防止这种情况发生?

我已经设置了GOMAXPROCS = 1,并且代码不会产生任何goroutine(除了golang库可能调用的内容).

这是我从pprof输出的top10

(pprof) top10
62550ms of 72360ms total (86.44%)
Dropped 208 nodes (cum <= 361.80ms)
Showing top 10 nodes out of 77 (cum >= 1040ms)
      flat  flat%   sum%        cum   cum%
   20760ms 28.69% 28.69%    20850ms 28.81%  runtime.osyield
   14070ms 19.44% 48.13%    14080ms 19.46%  runtime.usleep
   11740ms 16.22% 64.36%    23100ms 31.92%  _/C_/code/sc_proto/cloudgraph.(*Graph).LeafProb
    6170ms  8.53% 72.89%     6170ms  8.53%  runtime.memmove
    4740ms  6.55% 79.44%    10660ms 14.73%  runtime.typedslicecopy
    2040ms  2.82% 82.26%     2040ms  2.82%  _/C_/code/sc_proto.mAvg
     890ms  1.23% 83.49%     1590ms  2.20% …
Run Code Online (Sandbox Code Playgroud)

optimization go pprof

10
推荐指数
1
解决办法
4832
查看次数

如何在Google App Engine app.yaml中处理尾随削减

我遇到了这个问题,试图回答这个问题:在提供 有关如何在app.yaml中为Google App Engine路由某些请求的PHP文件时删除PHP文件扩展名.

但我无法弄清楚如何映射URL的请求,这些URL可能有也可能没有带有单个app.yaml正则表达式的尾部斜杠.现在,我用两行来处理这个案子:

handlers:
- url: /(.*)/
  script: /\1.php
- url: /(.*)
  script: /\1.php
Run Code Online (Sandbox Code Playgroud)

但这似乎是多余的.这两条线可以组合成一条吗?

我认为应该工作的东西,比如

url: /(.*)(/?)
Run Code Online (Sandbox Code Playgroud)

url: /(.*)(/{0,1})
Run Code Online (Sandbox Code Playgroud)

url: /(.*)(/?$)
Run Code Online (Sandbox Code Playgroud)

似乎不适用于带有斜杠的请求.

regex google-app-engine app.yaml

3
推荐指数
1
解决办法
892
查看次数

使用jQuery将div放在其父级中心

我试图在其父级内部垂直和水平居中.

JSFIDDLE:http://jsfiddle.net/pE5QT/

CSS:

.parent {
    width: 200px;
    height: 200px; 
    background-color:red;
}

.child {
    height: 100px;
    width: 100px;
    background-color:yellow;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="parent"> b
    <div class="child"> a </div>
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

var parent = $('.parent');
var parentDimensions = parent.height() * parent.width();

var child = $('.child');
var childDimensions = child.height() * child.width();

parent.html();
child.html(childDimensions);
Run Code Online (Sandbox Code Playgroud)

我很乐意回答,但我也很想理解它背后的逻辑.

html javascript jquery centering

2
推荐指数
1
解决办法
7014
查看次数

如何将Stackdriver日志导入BigQuery

有没有办法将应用引擎中的日志加载到Google Cloud Platform上的BigQuery?

我正在尝试使用联合查询来加载云存储中的Stackdriver日志文件.但是BigQuery无法加载Stackdriver编写的一些字段名称.

日志文件是换行符分隔的JSON,其记录看起来像

{  
   "insertId":"j594356785jpk",
   "labels":{  
      "appengine.googleapis.com/instance_name":"aef-my-instance-20180204t220251-x59f",
      "compute.googleapis.com/resource_id":"99999999999999999",
      "compute.googleapis.com/resource_name":"c3453465db",
      "compute.googleapis.com/zone":"us-central1-f"
   },
   "logName":"projects/my-project/logs/appengine.googleapis.com%2Fstdout",
   "receiveTimestamp":"2018-02-08T02:59:59.972739505Z",
   "resource":{  
      "labels":{  
         "module_id":"my-instance",
         "project_id":"my-project",
         "version_id":"20180204t220251"
      },
      "type":"gae_app"
   },
   "textPayload":"{\"json\":\"blob\"}\n",
   "timestamp":"2018-02-08T02:59:54Z"
}
Run Code Online (Sandbox Code Playgroud)

但BigQuery在此输入上返回错误: query: Invalid field name "compute.googleapis.com/zone". Fields must contain only letters, numbers, and underscores, start with a letter or underscore, and be at most 128 characters long.

有没有办法将这种日志摄入BigQuery?

我特别感兴趣的是只提取textPayload字段.

google-app-engine etl google-bigquery google-cloud-platform stackdriver

2
推荐指数
1
解决办法
1421
查看次数