小编Par*_*kar的帖子

对于node.js上的并发任务哪个更好?纤维?网络工作人员?还是线程?

我在前一段时间偶然发现了node.js并且非常喜欢它.但很快我发现它缺乏执行CPU密集型任务的能力.所以,我开始使用谷歌搜索并得到这些答案来解决问题:纤维,Web工作者和线程(thread-a-gogo).现在使用哪一个是一个混乱,其中一个肯定需要使用 - 毕竟有一个擅长IO的服务器的目的是什么?建议需要!

更新:

我正在想办法离开; 只是需要建议.现在,我想到的是:让我们有一些线程(使用thread_a_gogo或webworkers).现在,当我们需要更多时,我们可以创造更多.但是在创建过程中会有一些限制.(系统没有暗示,但可能是因为开销).现在,当我们超出限制时,我们可以派生一个新节点,并开始在其上创建线程.这样,它可以持续到我们达到某个极限(毕竟,进程也有很大的开销).达到此限制后,我们将开始排队任务.每当一个线程空闲时,它将被分配一个新任务.这样,它可以顺利进行.

所以,这就是我的想法.这个想法好吗?我对所有这些过程和线程都有点新意,所以没有任何专业知识.请分享您的意见.

谢谢.:)

concurrency multithreading web-worker fibers node.js

109
推荐指数
3
解决办法
4万
查看次数

存储器存储器矢量处理器中存储器访问冲突的条件

Hennessy-Patterson关于计算机体系结构的书(定量方法5ed)表示,在具有多个存储体的矢量体系结构中,如果满足以下条件,则可能发生银行冲突(参见5):

(银行数量)/ LeastCommonMultiple(银行数量,步幅)<银行繁忙时间

但是,我认为它应该是GreatestCommonFactor而不是LCM,因为如果您拥有的有效银行数量少于繁忙时间,则会发生内存冲突.有效数量的银行我的意思是这个 - 假设你有8个银行,并且步幅为2个.那么实际上你有4个银行,因为内存访问只能在四个银行排队(例如,假设您的访问都是偶数,从0开始,然后你的访问将在0,2,4,6银行排队.

实际上,这个公式甚至不适用于它下面给出的例子.假设我们有8个存储器组,其繁忙时间为6个时钟周期,总存储器延迟为12个时钟周期,以1的步幅完成64个元素的向量加载需要多长时间? - 这里他们计算时间为12 + 64 = 76个时钟周期.但是,根据给定的条件会发生存储库冲突,因此我们显然不能在每个周期中进行一次访问(方程式中为64).

我是错了,还是错误的公式能够在本书的5个版本中生存(不太可能)?

hardware processor vectorization cpu-architecture

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

正则表达式在javascript中显示意外的类型错误

这很奇怪,不知道为什么会发生,但现在就是这样.当我这样做:

/^\d+$/.test('16')
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是,当我做类似以下的事情时,我收到一个错误

var t = /^\d+$/.test;
t('16');
Run Code Online (Sandbox Code Playgroud)

我得到的错误是这样的:

TypeError:在不兼容的接收器[对象窗口]上调用的方法RegExp.prototype.test

我不知道在这里与Window有什么关系....任何想法?

javascript regex typeerror

5
推荐指数
2
解决办法
1839
查看次数

如何在服务器上建模推送通知

简要说明:

好吧,因为很多天我一直在寻找这个问题的答案,但似乎有"如何创建推送通知服务器"和类似问题的答案.我正在使用node.js并且很容易使用sock.js"创建"推送通知服务器(我听说socket.io与sock.js相比并不好).没问题,直到这里.但我想要的是如何建模这样的服务器.

细节:

好的,所以,假设我有一个应用程序,其中有一个聊天服务(这只是一个例子,实际上你可能已经猜到了很大的事情).一个人在一个房间里发送一条消息,并通知房间里的所有人.但我想要的是"有状态"聊天 - 也就是说,我想将消息存储在数据存储中.这就是问题所在.将消息存储在数据库中,然后告诉大家"嘿,有消息给你".当我们只需要应用程序的一部分进行实时活动时,这似乎很容易.当整个应用程序基于实时通信时该怎么办?除此之外,我还想拥有一个RESTful api.

我的解决方案(我并不高兴)

我想做的是这样的:(当然在服务器端)

                 Data Store
                     ||
                 Data Layer (which talks to data store)
                     ||
            ------------------
            |                |
     Real-Time Server   Restful server
Run Code Online (Sandbox Code Playgroud)

在这里,实时服务器监听数据层发布的有趣事件.每当发生有趣的事情时,服务器都会通知客户端.但是哪个客户? - 这是我的方法的问题

希望你能帮上忙.:)

更新:

我想我忘了强调我问题的一个重要部分.如何实现pub-sub系统?(注意:我不想要实际的代码,我会自己管理;只是如何去做我需要帮助的地方).问题是我在编写代码时感到非常困惑 - 该怎么做(我的混淆从这个问题本身就很明显).请提供一些阅读的参考或一些关于如何开始这个事情的建议?

architecture real-time push-notification node.js

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