小编zoo*_*oom的帖子

符合POSIX标准的shell中的数组

根据hyperpolyglot.org上的参考表,可以使用以下语法来设置数组.

i=(1 2 3)
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误的破折号/bin/shUbuntu 的默认值,应该符合POSIX标准.

# Trying the syntax with dash in my terminal
> dash -i
$ i=(1 2 3)
dash: 1: Syntax error: "(" unexpected
$ exit

# Working fine with bash
> bash -i
$ i=(1 2 3)
$ echo ${i[@]}
1 2 3
$ exit
Run Code Online (Sandbox Code Playgroud)

参考表是误导性的还是错误的?
如果是,那么定义数组或列表并且符合POSIX的正确方法是什么?

arrays bash posix dash-shell

9
推荐指数
3
解决办法
3255
查看次数

使用Object.create(null)创建空对象的影响和好处

首先,我做了一个快速的jsperf测试用例来显示明显的:
Object.create(null)比使用{}语法创建对象慢.
http://jsperf.com/js-object-creation-null-proto

但鉴于这一事实,前一种情况有时可能是优化和性能的一个很好的选择吗?换句话说,操纵最轻量级的js对象可以提高性能,因此在某些情况下使用它成为一个合理的选择.

我指的是你要大量访问对象属性的情况,或者大量使用for in循环.

这种方法是否有太大的风险,无法在库中使用,人们可能会导致这些对象不具备标准Object原型所带来的标准属性?

另外,你知道另一种(更快)的方法来创建最轻量级的js对象吗?

PS:我做了一个简短的测试用例来说明使用Object.create(null)和访问属性比使用更快一些的情况{}.
http://jsperf.com/js-object-creation-and-accessing-properties

javascript performance object jsperf

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

Kafka流用例以添加全局存储

在kafka流中定义拓扑时,可以添加全局状态存储。它将需要一个源主题以及一个ProcessorSupplier。处理器接收记录,并可以在理论上对其进行转换,然后再将其添加到存储中。但是,在还原的情况下,记录会直接从源主题(更改日志)插入到全局状态存储中,而跳过最终在处理器中完成的转换。

   +-------------+             +-------------+              +---------------+
   |             |             |             |              |    global     |
   |source topic  ------------->  processor  +-------------->    state      |
   |(changelog)  |             |             |              |    store      |
   +-------------+             +-------------+              +---------------+
          |                                                         ^
          |                                                         |
          +---------------------------------------------------------+
              record directly inserted during restoration

Run Code Online (Sandbox Code Playgroud)

StreamsBuilder#addGlobalStore(StoreBuilder storeBuilder,字符串主题,已消耗的消耗,ProcessorSupplier stateUpdateSupplier)将全局StateStore添加到拓扑。

根据文档

注意:您不应使用处理器将转换后的记录插入全局状态存储。该存储使用源主题作为changelog,并且在还原期间将直接从源中插入记录。应该使用此ProcessorNode来保持StateStore的最新状态。

同时,由于当前在kafka错误跟踪器上打开了主要错误:从主题还原状态时,不会使用addGlobalStore上提供的KAFKA-7663自定义处理器,该状态可以准确解释文档中所述的内容,但似乎是可以接受的错误。

我想知道KAFKA-7663是否确实是个错误。根据文档,它似乎是这样设计的,在这种情况下,我很难理解用例。
有人可以解释这个底层API的主要用例吗?我唯一能想到的就是处理副作用,例如在处理器中执行一些日志操作。

额外的问题:如果源主题充当全局存储的变更日志,则由于保留已过期而从该主题删除记录时,是否会将其从全局状态存储中删除?还是仅在从更改日志中对整个商店进行还原之后,才会在商店中进行删除。

java apache-kafka apache-kafka-streams

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