问题列表 - 第33143页

当我的 Erlang TCP 代理收到很多并发请求时,为什么性能下降这么多?

出于学习目的,我在 Erlang 中编写了一个简单的 TCP 代理。它可以工作,但是当我使用 ab (Apache Bench) 发出许多并发请求时,我遇到了奇怪的性能下降。让我感到疑惑的不是性能下降本身,而是下降的规模。后端是 nginx 作为 Web 服务器。我的代理位于 ab 和 nginx 之间。

这是我的代理的代码。

-module(proxy).
-export([start/3]).

start(InPort, OutHost, OutPort) ->
  {ok, Listen} = gen_tcp:listen(InPort, [binary, {packet, 0}, {active, once}]),
  spawn(fun() -> connect(Listen, OutHost, OutPort) end).

connect(Listen, OutHost, OutPort) ->
  {ok, Client} = gen_tcp:accept(Listen),
  spawn(fun() -> connect(Listen, OutHost, OutPort) end),
  {ok, Server} = gen_tcp:connect(OutHost, OutPort, [binary, {packet, 0}, {active, once}]),
  loop(Client, Server).

loop(Client, Server) ->
  receive
    {tcp, Client, Data} ->
      gen_tcp:send(Server, Data),
      inet:setopts(Client, [{active, once}]),
      loop(Client, Server); …
Run Code Online (Sandbox Code Playgroud)

erlang performance proxy networking tcp

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

是否可以禁用javac的静态最终变量内联?

Java静态编译器(javac)内联一些静态最终变量,并将值直接带到常量池.请考虑以下示例.A类定义了一些常量(公共静态最终变量):

public class A {
    public static final int INT_VALUE = 1000;
    public static final String STRING_VALUE = "foo";
}
Run Code Online (Sandbox Code Playgroud)

B类使用以下常量:

public class B {
    public static void main(String[] args) {
        int i = A.INT_VALUE;
        System.out.println(i);
        String s = A.STRING_VALUE;
        System.out.println(s);
    }
}
Run Code Online (Sandbox Code Playgroud)

编译类B时,javac从类A获取这些常量的值,并在B.class中内联这些值.结果,编译时必须从A类中删除的依赖关系B从字节码中删除.这是一种相当奇特的行为,因为您在编译时正在烘焙这些常量的值.你会认为这是JIT编译器在运行时可以做的最容易的事情之一.

是否有任何方法或任何隐藏的编译器选项可以禁用javac的这种内联行为?对于后台,我们正在考虑进行字节码分析以实现依赖性目的,并且它是字节码分析无法检测编译时依赖性的少数情况之一.谢谢!

编辑:这是一个棘手的问题,因为通常我们不控制所有源(例如,定义常量的第三方库).我们有兴趣从使用常量的角度检测这些依赖关系.由于引用是从使用常量的代码中删除的,因此没有简单的方法来检测它们,缺少源代码分析.

java dependencies bytecode javac

53
推荐指数
4
解决办法
7453
查看次数

如何让Rails从插件加载中排除一些捆绑的宝石?

我有一个使用Bundler进行依赖关系管理的Rails应用程序.我有以下内容Gemfile:

# default group:
gem 'json'

group 'development' do
  gem 'my_profiler'
end

group 'test' do
  gem 'mocha'
end

group 'deployment' do
  gem 'foo'
end
Run Code Online (Sandbox Code Playgroud)

我打电话Bundler.setup(:default, RAILS_ENV.to_sym)Bundler.require(:default, RAILS_ENV.to_sym)我的初始化.

问题在于,由于Bundler放入了宝石vendor/bundle/,Rails会初始化所有拥有的宝石init.rb,而不仅仅是当前环境的宝石.如何防止Rails自动加载Foo init.rb

ruby plugins dependencies ruby-on-rails bundler

7
推荐指数
2
解决办法
4138
查看次数

如何通过代码获取python模块的版本号?

我正在尝试获取我使用的特定几个模块的版本号.我可以存储在变量中的东西.

python

32
推荐指数
4
解决办法
5万
查看次数

Ruby 1.9的bug? - Array.permutation

在尝试来自Euler Project的问题41时,我遇到了似乎是Array.permutation的Ruby 1.9实现中的一个错误.这是隔离的问题代码:

n = 4
slice = '987654321'.chars.to_a[-n..-1]
puts "slice = #{slice.join}"
slice.permutation(n) {|perm| puts perm.join}

slice2 = slice.dup
puts "slice2 = #{slice2.join}"
slice2.permutation(n) {|perm| puts perm.join}

slice3 = []
(0...n).each {|i| slice3[i] = slice[i]}
puts "slice3 = #{slice3.join}"
slice3.permutation(n) {|perm| puts perm.join}
Run Code Online (Sandbox Code Playgroud)

我对slice和slice2的输出是:

slice = 4321
9876
9867
9786
9768
9687
...
Run Code Online (Sandbox Code Playgroud)

但是,slice3出现正确,数字1到4被置换.此外,n = 4是第一个出现此问题的值.当我设置n = 3时,我得到预期的输出.这是一个错误,还是我错误的编码?快速谷歌搜索没有发现任何东西.

ruby

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

检测iPhone浏览器中是否显示地址栏

当我正在显示iPhone浏览器中的地址栏时,我试图以面向未来且与设备无关的方式检测.这是显示在顶部的工具栏,用于显示URL.它可以通过调用隐藏:

window.scrollTo(0, 0)
Run Code Online (Sandbox Code Playgroud)

我想做的是检测它何时被显示(从而减少可用的观看空间)并设置一个计时器以便在大约一秒钟之后再次隐藏它.比这更频繁,它会非常烦人,因为用户将无法访问地址栏.

我试过检查window.pageYOffset,不幸的是,如果网址栏的任何部分可见,则返回零.

希望硬编码在iPhone上的任何尺寸,并检查那些使用当前视口大小.它太脆弱了.

有人知道解决方案吗?

javascript iphone

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

Hibernate 在更新唯一键的字段部分时抛出唯一约束冲突异常

以下是用例:我在 A、B、C 3 列上定义了唯一索引。假设其中的值为A1、B1、C1。我的java代码正在添加一条新记录,例如A1,B1,C1,但在添加此记录之前,我将先前的值从C1更新为C2。在尝试添加新记录时(更新后),hibernate 抛出唯一约束冲突异常。有什么理由吗?上述所有语句都在同一个事务中执行。我的假设是插入发生在更新之前,因此是异常的原因。

有什么想法/建议吗?

java hibernate unique-index unique-constraint

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

Objective-C中的C++ STL容器"pair <T1,T2>"的等价物?

我是Objective-C的新手,所以请不要过多地评价我.我想知道:我可以在Objective-C中使用相当于C++ STL对的容器吗?

我想构建一个包含与NSBool关联的NSInteger的数组.我知道我可以使用一个数组,每个条目都是一个具有单个键值的NSDictionary,但我发现它有点矫枉过正.

有任何想法吗?

谢谢.

c++ iphone stl objective-c std-pair

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

是否有支持大多数VS Visual C++的Linux的Visual C++编译器?

是否有支持大多数VS Visual C++的Linux的Visual C++编译器?

如果没有这样的移植\适应您的可视化C++代码的最佳选择?

linux c++-cli visual-studio visual-c++

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

使用XmlSerializer创建具有属性和值但没有子元素的元素

希望对于那里的人(可能是一个骗子)来说这应该是一个简单的答案,但我似乎无法弄明白.

我需要输出一个如下所示的元素:

<Quantity foo="AB" bar="CD">37</Quantity>
Run Code Online (Sandbox Code Playgroud)

我知道如何得到这个:

  <Quantity foo="AB" bar="CD">
    <qty>37</qty>
  </Quantity>
Run Code Online (Sandbox Code Playgroud)

包含Quantity类

public int qty;    
[XmlAttribute]
public string foo;

[XmlAttribute]
public string bar;
Run Code Online (Sandbox Code Playgroud)

但当然,无论我插入数量的变量是什么变成它自己的子元素.

另一方面,如果我在父元素中将Quantity作为变量,那么我可以设置值并获取

<Quantity>37</Quantity>
Run Code Online (Sandbox Code Playgroud)

但后来我不知道如何获得属性.

如果没有一个简单的方法来使用XmlSerializer,我会非常惊讶,但我还不知道.有任何想法吗?

c# xmlserializer

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