小编wis*_*shi的帖子

通过代码在Java中的性能?

首先,我应该提一下,我知道性能优化可能非常符合项目.我现在大部分时间都没有遇到这些特殊问题.我面临着JVM本身的一系列性能问题.

我现在想知道:

  • 哪个代码优化从编译器的角度来看是有意义的:例如,为了支持垃圾收集器,我将变量声明为final - 非常依赖PMD的Eclipse建议.
  • 有什么最佳实践:vmargs,堆和其他东西传递给JVM进行初始化.我如何在这里获得正确的值?有没有公​​式或是尝试和错误?

Java自动化很多,在字节码级和内容上做了很多优化.但是我认为大部分内容必须由开发人员来规划才能工作.

那么如何加速Java程序呢?:)

java optimization performance

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

将pthread变量保持为本地

有没有办法在pthread.hLinux GCC上使用以保持线程函数的本地变量:

int i = 42; // global instance of i    

int main() {
    pthread_t threads[2];
    long t;
    pthread_create(&threads[t], NULL, ThreadFunction, (void *) t;
    pthread_create(&threads[t], NULL, ThreadFunction2, (void *) t;
}
Run Code Online (Sandbox Code Playgroud)

我想知道POSIX函数是否有一个参数创建新线程并保持变量本地:

void *ThreadFunction(void *threadid)
{
    int i=0;
    i++; // this is a local instance of i
    printf("i is %d", i); // as expected: 1
}

void *ThreadFunction2(void *threadid)
{
    i += 3; // another local instance -> problem
}
Run Code Online (Sandbox Code Playgroud)

之后i是42岁.即使我之前已经定义了i一个,我希望这i不在我的线程之内.

c linux posix pthreads

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

大型 PyPlot - 避免内存分配

我正在做一个相当大的 PyPlot (Python matplotlib) (600000 个值,每个 32 位)。实际上我想我可以简单地做这样的事情:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4], [1,4,9,16], 'ro')
plt.axis([0, 6, 0, 20])
Run Code Online (Sandbox Code Playgroud)

两个数组,都分配在内存中。不过,我迟早必须绘制文件,其中包含数千兆字节的信息。

如何避免将两个数组传递到plt.plot()

然而我仍然需要一个完整的情节。因此,我认为仅使用迭代器并逐行传递值是无法完成的。

python file-io plot memory-management

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

什么相当于在Nim中将JSON加载到dict中

我是Nim的新手,我想将JSON文件读取到dict样式数据结构,以便将键作为列访问.

proc get_url() : string =
    return "train.json"
Run Code Online (Sandbox Code Playgroud)

和解析器:

var file = get_url()
var json_data = file.parseFile()
var values = newTable() # dict style data structure?

for record in json_data:
 for key, value in record:
   values[key] = value # not
Run Code Online (Sandbox Code Playgroud)

显然,表需要更具体地实例化.

我不知道JSON文件中的密钥数量.在手册中,它的例子如下var a = {"hi": 1, "there": 2}.toTable.这似乎不足以解析随机JSON文件.

json nim-lang

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

C#项目中的F#类型扩展:System.Runtime.CompilerServices.Extension错过了吗?

我正在深入研究F#,它非常吸引人.我正在尝试将Optional Types和C#结合在一起.非常有趣的事情......但是我想错过一些重要的东西我想:

#light
namespace MyFSharp

// C# way
[<System.Runtime.CompilerServices.Extension>]
module ExtensionMethods =
    [<System.Runtime.CompilerServices.Extension>]
    let Great(s : System.String) = "Great"


using System;
using MyFSharp;  // reference the F# dll
class Program
{
    static void Main(string[] args)
    {
        var s = "foo";
        //s.Awesome(); // no
        Console.WriteLine(s.Great());  // yes
    }
}
Run Code Online (Sandbox Code Playgroud)

这很简单 - 我想这对我来说还为时过早......我得到:

The type 'Extension' is not defined 
Run Code Online (Sandbox Code Playgroud)

也许现在还为时过早......但我不明白为什么没找到它.

谢谢,马吕斯

c# extension-methods f#

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

可编写脚本的Windows反汇编程序[非cygwin]

我目前正在尝试实现结合逆向工程和图论的东西.因此,我想拆解PE二进制文件.有一些非常复杂的工具可以这样做,比如IDA或w32dasm.后来似乎死了.IDA不是可编写脚本的 - 据我所知.

我想要一个可编写脚本的反汇编程序的原因是,我在C#中实现了我的程序.它得到一个二进制文件,因此必须以某种方式获取操作码.我想我需要用一些参数调用一些帮助程序.没有GUI就无法调用IDA.它不提供真正的cmdline选项.

有任何想法吗?

谢谢,愿

c# reverse-engineering portable-executable

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

如何制作VS 2008独有的"暧昧符号"

我的C++代码中的#define语句有些问题,但是我不熟悉如何在VC++中处理它:

>filetaint.cpp
1>.\filetaint.cpp(272) : error C2872: 'UINT32' : ambiguous symbol
1>        could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\basetsd.h(82) : unsigned int WIND::UINT32'
1>        or       '..\..\include\gen\types_foundation.TLH(80) : LEVEL_BASE::UINT32'
1>.\filetaint.cpp(275) : error C2872: 'UINT32' : ambiguous symbol
1>        could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\basetsd.h(82) : unsigned 
[...]
Run Code Online (Sandbox Code Playgroud)

==========构建:0成功,1失败,0最新,0跳过==========

所以问题在于,编译器不知道是否使用我的Windows SDK"basetsh.h"或者types_foundation.h中的定义.我希望它使用后者.在C++命名空间中是否有任何构造来告诉编译器选择什么?我想避免修补SDK或库本身.

#include "filetaint.h"
#include "dift.h"

using namespace WIND;
Run Code Online (Sandbox Code Playgroud)

types_foundation.TLH包含正确的语句.它已经在VS 2008中的VC++路径中了.我在这里有点困惑......但我想我必须找到一种方法告诉我的编译器暂时忽略SDK;).

c++ namespaces

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