首先,我应该提一下,我知道性能优化可能非常符合项目.我现在大部分时间都没有遇到这些特殊问题.我面临着JVM本身的一系列性能问题.
我现在想知道:
Java自动化很多,在字节码级和内容上做了很多优化.但是我认为大部分内容必须由开发人员来规划才能工作.
那么如何加速Java程序呢?:)
有没有办法在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不在我的线程之内.
我正在做一个相当大的 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()?
然而我仍然需要一个完整的情节。因此,我认为仅使用迭代器并逐行传递值是无法完成的。
我是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文件.
我正在深入研究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)
也许现在还为时过早......但我不明白为什么没找到它.
谢谢,马吕斯
我目前正在尝试实现结合逆向工程和图论的东西.因此,我想拆解PE二进制文件.有一些非常复杂的工具可以这样做,比如IDA或w32dasm.后来似乎死了.IDA不是可编写脚本的 - 据我所知.
我想要一个可编写脚本的反汇编程序的原因是,我在C#中实现了我的程序.它得到一个二进制文件,因此必须以某种方式获取操作码.我想我需要用一些参数调用一些帮助程序.没有GUI就无法调用IDA.它不提供真正的cmdline选项.
有任何想法吗?
谢谢,愿
我的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;).