小编Ado*_*nis的帖子

Python 2.6 vs 2.7多线程性能问题(futex)

我有一个简单的Monte-Carlo Pi计算程序.我尝试在2个不同的盒子上运行它(相同的硬件,内核版本略有不同).我发现在一种情况下(两倍的时间)性能显着下降.没有线程,性能大致相同.对程序的分析执行表明,较慢的程序每个futex调用花费较少的时间.

  • 这与任何内核参数有关吗?
  • CPU标志会影响futex性能吗?/ proc/cpuinfo表示cpu标志略有不同.
  • 这有点与python版本有关吗?

Linux(3.10.0-123.20.1(Red Hat 4.4.7-16))Python 2.6.6

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
99.69   53.229549           5  10792796   5385605 futex

Profile Output
============== 
256 function calls in 26.189 CPU seconds

Ordered by: standard name

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
   39   26.186    0.671   26.186    0.671 :0(acquire)
Run Code Online (Sandbox Code Playgroud)

Linux(3.10.0-514.26.2(Red Hat 4.8.5-11))Python 2.7.5

 % time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 99.69   94.281979           8  11620358   5646413 futex

Profile Output …
Run Code Online (Sandbox Code Playgroud)

python linux multithreading futex

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

如何在Kotlin中使用Double Epsilon/Precision调用assertEquals?

我想知道,在Kotlin中,是否有可能调用java方法的等价物:

assertEquals(double expected, double actual, double precision)
Run Code Online (Sandbox Code Playgroud)

因为每次我都会得到这种方法

assertEquals(expected: T, actual: T, message: String)
Run Code Online (Sandbox Code Playgroud)

我找不到具有精度参数的那个.我猜,调用Java也应该没问题.

我对方法的调用:

assertEquals(5000.00, calculateCouponAmount(basicFaceValue, basicInterestRate, amortizationBullet, couponNumber1), 0.01)
Run Code Online (Sandbox Code Playgroud)

我收到错误,因为0.01进入"消息"字段

java testing junit kotlin

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

从 Tornado WebSocket 服务器主动发送消息

我有一个 Python WebSocket 服务器。这可以在收到消息时返回响应。

import tornado.web
import tornado.websocket
import tornado.ioloop

class WebSocketHandler(tornado.websocket.WebSocketHandler):

    def open(self):
        print("New client connected")
        self.write_message("You are connected")

    def on_message(self, message):
        self.write_message(u"You said: " + message)

    def on_close(self):
        print("Client disconnected")

    def check_origin(self, origin):
        return True

application = tornado.web.Application([
        (r"/", WebSocketHandler),
])


if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)

但是,这不能在收到消息之前发送消息。如何主动发送消息?例如,它测量时间,如果 10 秒没有收到消息,它会发送“你在睡觉吗?”。

我想使用 WebSocket 制作聊天机器人。我使用 tornado 和 websocket 是因为我只知道这一点,如果您知道在这方面使用更好的方法,我会很感兴趣。

python tornado chatbot websocket

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

keycloak realmresourceprovider科西

我正在评估某些IAM产品,并使用Keycloak的RealmResourceProvider遇到了CORS问题。目标是编写一个能够使用Keycloak的REST接口创建用户和管理组的angular4客户端。

服务器端:

我试图用RealmResourceProvider接口实现Rest接口,以便尽可能容易地访问Realm和User Data。我遵循了Beercloak示例(github.com/dteleguin/beercloak)并使其正常运行,但是没有自定义主题(仅REST资源)。我自己的应用程序打包为Jar。我设法通过REST Client调用了这个Facade,并且它起作用了(先调用localhost:8080 / auth / realms / master / protocol / openid-connect / token,然后将令牌填充到Authorization-Header中)。

keycloak-configuration 但是,如果我通过浏览器对其进行测试,则需要启用Cross-Origin-Ressource-Sharing。为此,我在服务器应用程序的“ keycloak.json”中添加了“ enable-cors”属性:

{
"realm": "master",
"auth-server-url": "http://localhost:8080/auth",
"ssl-required": "external",
"resource": "pharmacyRessource",
"public-client": true,
"enable-cors": true
}
Run Code Online (Sandbox Code Playgroud)

另外,我在Keycloak Admin中创建了一个客户端。 客户端配置

客户端和问题:

角度客户端使用github.com/mohuk/ng2-keycloak/blob/master/src/keycloak.service.ts中的Mohuks ng2-keycloak服务获取访问令牌。- 工作正常。但是如果我对我的资源进行GET请求,则预检失败是因为缺少Access-Control-Allow-Origin标头: 错误401 用于初始化javascript中的keycloak-client的keycloak.json如下所示:

{
  "realm": "master",
  "auth-server-url": "http://localhost:8080/auth",
  "ssl-required": "external",
  "resource": "pharmacyRessource",
  "public-client": true
}
Run Code Online (Sandbox Code Playgroud)

我失败的解决方案:

  • 我尝试实现CORS筛选器,但未成功,因为无法通过keycloak进行注册。
  • 我还实现了@OPTIONS方法并自己添加了CORSE标头。也不起作用,因为从未调用过Method。
  • 我试图将其打包为.war以便启用自定义过滤器/提供程序,但未能将资源注册到keycloak。

我的测试环境是来自hub.docker.com/r/jboss/keycloak/的官方Docker容器

cross-domain keycloak

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

锯齿无效的批次或签名

我最近开始使用Hyperledger Sawtooth进行播放,并且无法在java上提交事务,而python代码似乎没问题.

我已经在这里编写了基于api文档的python代码,然后尝试在java中编写一个.下面是java中的代码

import com.google.protobuf.ByteString;
import com.mashape.unirest.http.Unirest;
import sawtooth.sdk.processor.Utils;
import sawtooth.sdk.protobuf.*;

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.Signature;
import java.security.spec.ECGenParameterSpec;

public class BatchSender {

    public static void main(String[] args) throws Exception{


        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC");
        ECGenParameterSpec parameterSpec = new ECGenParameterSpec("secp256k1");

        keyPairGenerator.initialize(parameterSpec);

        KeyPair keyPair = keyPairGenerator.generateKeyPair();
        Signature ecdsaSign = Signature.getInstance("SHA256withECDSA");

        ecdsaSign.initSign(keyPair.getPrivate());


        byte[] publicKeyBytes = keyPair.getPublic().getEncoded();
        String publicKeyHex = Utils.hash512(publicKeyBytes);

        ByteString publicKeyByteString = ByteString.copyFrom(new String(publicKeyBytes),"UTF-8");


        String payload = "{'key':1, 'value':'value comes here'}";
        String payloadBytes = Utils.hash512(payload.getBytes());

        ByteString payloadByteString  = …
Run Code Online (Sandbox Code Playgroud)

java blockchain java-security hyperledger hyperledger-sawtooth

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

Elasticsearch 5 如何开始编写原生 Java 插件

我目前正在尝试编写一个 Elasticsearch 插件(主要用于测试目的),并且我正在努力处理 简单说明的文档

这些示例提供了入门所需的基本知识。有关如何编写插件的更多信息,我们建议您查看本文档中列出的插件以获取灵感。

所以基本上,在找到了一些教程(除了maven部分之外彼此不同意)后,请参阅http://david.pilato.fr/blog/2016/07/27/creating-a-plugin-for-elasticsearch -5-dot-0-using-maven/http://jfarrell.github.io(它们不继承相同的类)。

我实际上被困在从哪里开始,核心 elasticsearch 依赖项中有哪些组件可用,以及我应该如何加载我的插件。(我知道我可以通过测试和复古工程来研究它,我只是想知道是否有人对这个主题有好的建议)。

现在我的代码看起来像:

public class MyPlugin extends Plugin implements NativeScriptFactory{
  //overriden methods
}
Run Code Online (Sandbox Code Playgroud)

我应该从那里去哪里?

非常感谢!

java elasticsearch elasticsearch-plugin

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

Java - 静态和最终变量

我知道这不起作用,但它只是一个例子,所以我可以理解为什么它不起作用.

public class MyClass {

    final static JButton b;

 public void myMethod() {
   b = new JButton("Hello!");
 }
 }
Run Code Online (Sandbox Code Playgroud)

1)为什么final static JButton b;线路出错?当我删除static关键字时,为什么这个错误会消失?

2)有或没有static关键字,行有一个错误b = new JButton("Hello!"); 我想知道为什么这是?我认为在方法中实例化最终变量是可以的.

java static final

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