小编use*_*558的帖子

Ivy Bridge上RDRAND指令的延迟和吞吐量是多少?

我在agner.org上找不到有关RDRAND指令的延迟或吞吐量的任何信息.但是,这个处理器存在,所以信息必须在那里.

编辑:实际上最新的优化手册提到了这条指令.它记录为<200个周期,Ivy Bridge上的总带宽至少为500MB/s.但是由于延迟和吞吐量是可变的,因此对该指令的一些更深入的统计将是很好的.

assembly intel rdrand

30
推荐指数
2
解决办法
5021
查看次数

如何在Docker-Swarm模式下完成负载平衡

我正在开发一个使用docker-swarm建立云架构的项目.我知道使用swarm我可以部署服务的副本,这意味着该图像的多个容器将运行以服务请求.

我还读到docker有一个内部负载均衡器来管理这个请求分配.

但是,我需要帮助理解以下内容:

假设我有一个容器,将服务公开为REST API或说它是一个Web应用程序.如果我在swarm中部署了多个容器(副本),并且我有其他容器(运行一些应用程序)与此HTTP/REST服务通信.

然后,当我写那些IP:PORT组合的应用程序时,我会使用吗?是否有任何工作节点IP运行这些服务?即使在运行相同服务的其他工作人员/经理之间,这样做是否会适当地分配负载?

或者我应该调用管理器,而管理器又适当地处理路由(即使管理器节点没有运行此特定服务的容器)?

谢谢.

load-balancing docker docker-swarm-mode

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

vmsplice()和TCP

在最初的vmsplice()实现中,有人建议如果你有一个用户区缓冲区2x可以容纳管道的最大页数,那么缓冲区后半部分成功的vmsplice()将保证内核完成使用缓冲区的前半部分.

但事实并非如此,特别是对于TCP,内核页面将被保留,直到从另一方接收到ACK.修复这个问题是未来的工作,因此对于TCP,内核仍然需要从管道中复制页面.

vmsplice()有一个SPLICE_F_GIFT选项可以处理这个,但问题是这暴露了另外两个问题 - 如何有效地从内核获取新页面,以及如何减少缓存垃圾.第一个问题是mmap需要内核清除页面,第二个问题是虽然mmap可能会使用内核中的花式kscrubd功能,但这会增加进程的工作集(缓存垃圾).

基于此,我有以下问题:

  • 通知userland关于页面安全重用的当前状态是什么?我特别感兴趣的是将splice()d拼接到套接字(TCP)上.在过去的5年里发生了什么事吗?
  • mmap/ vmsplice/ splice/ munmap目前在TCP服务器中进行零复制的最佳实践还是今天我们有更好的选择?

linux kernel mmap splice zero-copy

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

为什么Safe Haskell不支持Template Haskell?

Safe Haskell的文档说明:

[...]不幸的是,模板Haskell可用于破坏模块边界,因此可用于获取对此构造函数的访问权限.[...]使用-XSafe标志编译Danger模块会限制可用于安全子集的Haskell功能.这包括禁止不安全的PerfromIO,模板Haskell,[...]

用作将AST转换为另一个AST的宏系统,是否不能简单地将TH限制为Haskell的安全子集,并将结果AST限制为该子集?

haskell template-haskell

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

如何实现ghc运行时支持分析?

我没有在评论中找到太多文件.是否有任何好的博客文章或类似的?

profiling haskell ghc

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

是否有人使用预期<T>的monadic绑定式编程

(首先在问题中"绑定"与此无关std::bind)

我看过预期的<T>谈话,我认为关于这种技术历史的演示文稿缺少Haskell中这个东西背后的核心思想.

Haskell的核心思想是你"永远不会"获得一个人的价值Expected<T>.你所做的是将一个lambda传递给Expected<T>那个将被应用或不被应用的lambda,具体取决于它的状态Expected<T>.

我本来期望这个"绑定"组合器是Expected<T>将要使用的主要方法,因此我不得不问这种编程风格是否因某种原因而被拒绝.我将then在下面称之为组合器:

template <class T> class Expected<T> {
    ....
    template <class V, class F> Expected<V> then(F fun_) {
       if (!valid()) {
           return Expected<V>::fromException(this(??)); // something like that
       }
       return fun_(get());
    }
}
Run Code Online (Sandbox Code Playgroud)

这个组合子的一点是连锁的,你的功能列表并不需要检查错误,并在失败将会短路评价的第一个函数.

auto res = Expected<Foo>::fromCode([]() { return callFun1(...); })
             .then([](Baz& val) { return callFun2(..,val,..); })
             .then([](Bar& val) { return callFun3(val,...); });
Run Code Online (Sandbox Code Playgroud)

或者这种语法开始类似于>>=Haskell中使用的运算符.

auto res = []() { return …
Run Code Online (Sandbox Code Playgroud)

c++ monads c++11

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

支持和类型的高性能对象序列化库

我想知道是否有任何高性能序列化库(如Google协议缓冲区)支持和类型.

Sum类型是标记的联合,基本上能够说某些东西是A,B或C. Sum类型用于支持代数数据类型的 Haskell和ML等语言

serialization types thrift protocol-buffers msgpack

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

用于在angularjs和node.js之间共享库的模式

如何在angularjs和node.js之间共享库?

例如,angularjs服务通常是可重复使用的代码段.我们以URL库为例(挑选并构建URL).

同一个库应该可以在node.js中使用.

我的约束是我想共享库代码,但我不想将自己限制在浏览器端的任何加载器库.因此,如果我需要在浏览器中使用RequireJS,我需要禁用任何加载部分,以便可以在其他地方进行控制.

那我该如何分享代码呢?

javascript node.js angularjs

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

什么是libtool的.lai文件?

有人能告诉我libtool的.lai文件是用来做什么的吗?

另请参见什么是libtool的.la文件?

libtool

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

这个'约束'中的'模糊类型变量'是什么意思?

在这段代码中,我试图让我的worker函数中的第一个参数go成为'type family'类型.我在类型类型系列文档中看到类似的insert函数属于类类,而在我的例子中它没有.

我是新来的家庭,所以也许我使用它们错了,但这个错误意味着什么?

{-# LANGUAGE TypeFamilies #-}

-- | key
class K a where
  -- | iterator for key
  type I a :: *
  mkI :: a -> I a

--| A map
data (K a) => M a b = M a b

insert :: (K a) => a -> b -> M a b -> M a b
insert = go mkI    -- <<< PROBLEM
  where
    go o a b m = …
Run Code Online (Sandbox Code Playgroud)

haskell type-families

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

使用`lens`相当于`span`是什么?

假设我有

data SumType = A | B | C

list = [A, B, B, A, C, A]

(as, rest) = span (\case A -> True; _ -> False) list
Run Code Online (Sandbox Code Playgroud)

假设我有棱镜_A,是否有一种方法可以更简洁地使用它来书写lens

haskell haskell-lens

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

如何简化Java中无副作用的方法的测试?

函数(无副作用)是一个基本的构建块,但我不知道用Java测试它们的令人满意的方法.

我正在寻找能够更轻松地测试它们的技巧.这是我想要的一个例子:

public void setUp() {
   myObj = new MyObject(...);
}

// This is sooo 2009 and not what I want to write:
public void testThatSomeInputGivesExpectedOutput () {
   assertEquals(expectedOutput, myObj.myFunction(someInput);
   assertEquals(expectedOtherOutput, myObj.myFunction(someOtherInput);
   // I don't want to repeat/write the following checks to see
   // that myFunction is behaving functionally.
   assertEquals(expectedOutput, myObj.myFunction(someInput);
   assertEquals(expectedOtherOutput, myObj.myFunction(someOtherInput);

}


// The following two tests are more in spirit of what I'd like 
// to write, but they don't test that myFunction is functional:
public void …
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing functional-testing

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