小编gra*_*tot的帖子

Node.js事件循环理解(带图)

我读过这个这个,看了这个 ...

我已经制作了一个如何理解它的图表:

在此输入图像描述

  • 的Javascript回调(功能)可以存在于current queue,check queue,close callbacks queue,timers queueI/O callbacks queue.
  • Js代码current queue一次只能从一个函数(任务/作业)执行.
  • 此时执行的Js代码可以将微任务(作业)添加current queue到自身之后执行,并将macrotasks (任务)添加到check queue.它可以通过要求API执行它来直接向其他队列添加任务.
  • Idle, prepare phase用于某些内部节点js业务(可能像垃圾收集).
  • Poll phase从线程池中轮询线程,并使用适当的回调填充队列.
  • Idle, preparepoll阶段没有与它们相关的js回调的队列.
  • (四)线程thread pool都是相同的,没有专业化.
  • 事件循环从每个队列逐个接受并执行任务,直到它为空,然后移动到下一个队列.
  • 队列中的任务没有与之关联的任何作业(微服务).作业仅在执行任务或其他作业期间创建,并且仅存在于作业中current task queue.

这种理解是正确的还是我错过了什么?

可以在此处找到带有图表的MS Power Point .pptx文件.

javascript event-loop node.js

29
推荐指数
1
解决办法
1051
查看次数

C++ const通过指针改变了,还是它?

在c中,可以使用像这样的指针来改变const:

//mainc.c
#include <stdio.h>

int main(int argc, char** argv) {
    const int i = 5;
    const int *cpi = &i;

    printf("  5:\n");
    printf("%d\n", &i);
    printf("%d\n", i);
    printf("%d\n", cpi);    
    printf("%d\n", *cpi);   

    *((int*)cpi) = 8;
    printf("  8?:\n");
    printf("%d\n", &i);
    printf("%d\n", i);
    printf("%d\n", cpi);
    printf("%d\n", *cpi);
}
Run Code Online (Sandbox Code Playgroud)

从输出中可以看出常量已更改: mainc输出

如果我们在c ++中尝试相同:

//main.cpp
#include <iostream>

using std::cout;
using std::endl;

int main(int argc, char** argv) {
    const int i = 5;
    const int *cpi = &i;

    cout << "  5:" << '\n';
    cout << &i << …
Run Code Online (Sandbox Code Playgroud)

c c++ pointers const

16
推荐指数
2
解决办法
1500
查看次数

Javascript背景循环

假设我们有一个loop.js文件:

longLoop().then(res => console.log('loop result processing started'))
console.log('read file started')
require('fs').readFile(__filename, () => console.log('file processing started'))
setTimeout(() => console.log('timer fires'), 500)

async function longLoop () {
  console.log('loop started')
  let res = 0
  for (let i = 0; i < 1e7; i++) {
    res += Math.sin(i) // arbitrary computation heavy operation
    if (i % 1e5 === 0) await null /* solution: await new Promise(resolve => setImmediate(resolve)) */
  }
  console.log('loop finished')
  return res
}
Run Code Online (Sandbox Code Playgroud)

如果ran(node loop.js)输出:

loop started …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous event-loop node.js background-task

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

熊猫。复制多索引级别

我有一个带有多索引列的 DataFrame:

df = pd.DataFrame(np.arange(12).reshape(3,-1))
df.columns = [['A', 'A', 'B', 'B'], [0, 1, 0, 1]]
print(df)
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

   A      B    
   0  1   0   1
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
Run Code Online (Sandbox Code Playgroud)

我想做一些类似df['C'] = df['B']的事情:

    A       B       C    
    0   1   0   1   0   1
0   0   1   2   3   2   3
1   6   7   8   9   8   9
2  12  13  14  15  14  15
Run Code Online (Sandbox Code Playgroud)

我得到了ValueError: Wrong number of items passed …

python multi-index dataframe pandas

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

AWS DynamoDB。我是否过度使用了我的写入能力?

输入数据

DynamoDB 免费套餐提供:

  • 25 GB 存储空间
  • 25 个读取容量单位
  • 25个写入容量单位

容量单位(SC/EC - 强/最终一致):

  • 1 RCU = 1 SC 读取 4kB 项/秒
  • 1 RCU = 2 EC 读取 4kB 项/秒
  • 1 WCU = 1 次写入 1kB 项/秒

我的应用程序:

  • 一个 DynamoDB 表 5 个 RCU,5 个 WCU
  • 一个拉姆达
    • 每 1 分钟运行一次
    • 向 DynamoDB 写入 3 个项目,每个项目约 8kB
    • lambda 执行时间 <1 秒

该应用程序工作正常,到目前为止没有限制。

云观察

在我的 CloudWatch 中有一些图表(忽略 7:00 之后的部分):

  • 此图表上的值为 22 WCU

在此处输入图片说明

  • 在这张图表上,它是 110 WCU - 实际上是计算出来的 - 这个图表分辨率是 5min - 5*22=110(把它留在这里以防我未来的自己感到困惑)

在此处输入图片说明

问题

我们有 …

amazon-web-services amazon-dynamodb

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

Git完全重置.删除所有文件.删除历史记录

我有一个现有的存储库(at ssh://xxx@yyy.rhcloud.com/~/git/dev.git/),它没有克隆到我的电脑上.它太大而且凌乱,我不想下载它,我不再需要它了.我想重新开始并完全取代其内容.我怎么做?

我之前使用过SmartGit.我也可以通过ssh xxx@yyy.rhcloud.comGit Bash 连接到我的存储库.这就是我所知道的关于git的全部内容.我想要的只是重置一个存储库,当我将它克隆到我的计算机时,我得到的只是一个空目录.

git ssh openshift

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