小编Joh*_*röm的帖子

编译时按体系结构排除源文件

我正在为Windows编写一个包含多个软件包的Go程序.其中一个软件包使用CGo来调用某些.h和.c文件中定义的一些函数.这些.c文件依赖于windows.h.

由于在Windows平台上进行开发非常繁琐,我想在这个文件中制作一个函数的模型,然后在Linux上进行开发.但是当我尝试编译时,我得到:

fatal error: windows.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

由于go工具尝试编译我的Windows依赖文件.这有什么办法吗?我知道那样的东西

#ifdef ..
import x
#endif
Run Code Online (Sandbox Code Playgroud)

不是最佳实践,但在这种情况下,我需要一些东西,只允许编译"Linux"文件.

compilation go

9
推荐指数
1
解决办法
1618
查看次数

GKE 容器被“内存 cgroup 内存不足”杀死,但监控、本地测试和 pprof 显示使用率远低于限制

我最近将一个新的容器映像推送到我的 GKE 部署之一,并注意到 API 延迟上升并且请求开始返回 502。

查看日志我发现容器由于 OOM 开始崩溃:

Memory cgroup out of memory: Killed process 2774370 (main) total-vm:1801348kB, anon-rss:1043688kB, file-rss:12884kB, shmem-rss:0kB, UID:0 pgtables:2236kB oom_score_adj:980
Run Code Online (Sandbox Code Playgroud)

查看内存使用情况图,看起来 pod 使用的内存并没有超过 50MB。我的原始资源请求是:

...
spec:
...
  template:
...
    spec:
...
      containers:
      - name: api-server
...
        resources:
          # You must specify requests for CPU to autoscale
          # based on CPU utilization
          requests:
            cpu: "150m"
            memory: "80Mi"
          limits:
            cpu: "1"
            memory: "1024Mi"
      - name: cloud-sql-proxy
        # It is recommended to use the latest version of the …
Run Code Online (Sandbox Code Playgroud)

out-of-memory go kubernetes google-kubernetes-engine

7
推荐指数
2
解决办法
767
查看次数

GKE 内部负载均衡器不会在 gRPC 服务器之间分配负载

我有一个 API 最近开始接收更多流量,大约是 1.5 倍。这也导致延迟加倍:

潜伏

这让我感到惊讶,因为我设置了节点和 Pod 的自动缩放以及 GKE 内部负载平衡。

我的外部 API 将请求传递到使用大量 CPU 的内部服务器。查看我的 VM 实例,似乎所有流量都发送到我的两个 VM 实例之一(也称为 Kubernetes 节点):

每个节点的 CPU 利用率

通过负载平衡,我预计 CPU 使用率会在节点之间更加均匀地分配。

查看我的部署,第一个节点上有一个 pod:

第一个节点上的第一个 pod

第二个节点上有两个 pod:

在此输入图像描述

在此输入图像描述

我的服务配置:

$ kubectl describe service model-service
Name:                     model-service
Namespace:                default
Labels:                   app=model-server
Annotations:              networking.gke.io/load-balancer-type: Internal
Selector:                 app=model-server
Type:                     LoadBalancer
IP Families:              <none>
IP:                       10.3.249.180
IPs:                      10.3.249.180
LoadBalancer Ingress:     10.128.0.18
Port:                     rest-api  8501/TCP
TargetPort:               8501/TCP
NodePort:                 rest-api  30406/TCP
Endpoints:                10.0.0.145:8501,10.0.0.152:8501,10.0.1.135:8501
Port:                     grpc-api  8500/TCP
TargetPort:               8500/TCP
NodePort:                 grpc-api  31336/TCP
Endpoints:                10.0.0.145:8500,10.0.0.152:8500,10.0.1.135:8500
Session Affinity:         None …
Run Code Online (Sandbox Code Playgroud)

load-balancing kubernetes google-kubernetes-engine grpc kubernetes-ingress

7
推荐指数
1
解决办法
1077
查看次数

逐字逐句读取Perl中的文本文件

我有一个大的(300 kB)文本文件,其中包含由空格分隔的单词.现在我想打开这个文件并逐个处理它中的每个单词.

问题是perl一次一行地读取文件(即)整个文件,这给我带来了奇怪的结果.我知道正常的方法是做类似的事情

open($inFile, 'tagged.txt') or die $!;
$_ = <$inFile>;
@splitted = split(' ',$_);
print $#splitted;
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误的字数(太大的数组?).

是否可以逐字阅读文本文件?

perl

6
推荐指数
2
解决办法
2万
查看次数

确定哪一侧面向 3D 立方体上的观察者

对于学校作业,我和一个朋友一直致力于使用 2D 库(光滑)在 2D 表面(屏幕)上渲染立方体

为此,我们使用此处描述的方法3D-projection - Wikipedia the free encyclopedia

我们使用 3x3 矩阵来旋转表示立方体表面上的点的 3D 向量。然后我们使用以下方法将 3D 矢量投影到位于正 X 轴的平面(屏幕)上:

public Vector2D translate2D(Vector3D v){

    Vector3D trans = translate(v);//Rotates the vector into position

    float w = -trans.getX()/(700) + 1;
    float x = (trans.getZ())/w;
    float y = (trans.getY())/w;
    return new Vector2D(x, y);
}
Run Code Online (Sandbox Code Playgroud)

其中 translate() 将向量旋转到正确的位置,w 为立方体添加一些透视。

现在问题来了:

我需要知道立方体的哪一边要渲染,哪些不渲染(即哪些面向观众,哪些不是)。只要你不使用透视(w),这很容易。立方体总是向用户显示三个面,要找到这些面,您需要做的就是:

  1. 得到侧面的正常
  2. 使用旋转矩阵翻译它
  3. 如果平移法线 X 分量为正,则该侧面向正 X 方向,因此对观察者可见。

这是因为屏幕直接位于正 X 轴上。

现在,由于透视的原因,根据立方体的旋转,观察者面向 1-3 边。如何在计算中补偿透视并确定哪些面面向观察者?如前所述,我可以访问每一边的法线(单位向量直接指向每一边)和处理旋转的矩阵以及上述方法。

(编辑)感谢您的回答 horatius83,但这是我的问题:我不知道他的表面是否正常,因为由于增加的视角,侧面的法线略有扭曲。

这里有一些图片可以进一步描述我的问题

没有透视(侧面法线=表面法线):

在此处输入图片说明

透视显示 3 …

java 3d

5
推荐指数
1
解决办法
2915
查看次数