Java的“os.name”为Windows 10?

在Java中,我们可以看到os.name的属性值来知道底层操作系统的名称: System.getProperty("os.name") 。 对于Windows的每一个版本,它总是返回操作系统的确切名称: Windows XP for XP, Windows Vista for Vista, Windows 7 for Seven, Windows 8.1 for 8.1等等… 问题是:我只是使用发布的微软更新程序将Windows 8.1更新到Windows 10,而且似乎仍然保留Windows 8.1 : public class OSTest { public static void main(String[] args) { System.out.println(System.getProperty("os.name")); } } 我怎样才能为此创build一个解决方法? 而且,有没有人知道如果这个问题仍然存在,如果安装新的Windows 10副本 – 也就是说,这个错误是由微软自动更新引起的?

为什么BufferedReader read()比readLine()慢得多?

我需要一次读取一个字符的文件,并使用BufferedReader的read()方法。 * 我发现read()比readLine()慢10倍左右。 这是预期的吗? 还是我做错了什么? 这是Java 7的基准testing。inputtesting文件有大约500万行和254万字符(〜242 MB)**: read()方法需要大约7000 ms来读取所有字符: @Test public void testRead() throws IOException, UnindexableFastaFileException{ BufferedReader fa= new BufferedReader(new FileReader(new File("chr1.fa"))); long t0= System.currentTimeMillis(); int c; while( (c = fa.read()) != -1 ){ // } long t1= System.currentTimeMillis(); System.err.println(t1-t0); // ~ 7000 ms } readLine()方法只需要readLine() ms: @Test public void testReadLine() throws IOException{ BufferedReader […]

什么是最大吞吐量的UDP数据包的最佳大小?

我需要通过潜在的有损networking将数据包从一台主机发送到另一台主机。 为了尽量减less数据包延迟,我不考虑TCP / IP。 但是,我希望最大化UDP吞吐量。 应该使用什么UDP数据包的最佳大小? 以下是我的一些考虑: networking中交换机的MTU大小是1500.如果我使用一个大的数据包,例如8192,这将导致分段。 丢失一个分片会导致整个分组丢失,对吧? 如果我使用较小的数据包,则会产生UDP和IP标头的开销 如果我使用一个非常大的数据包,我可以使用的最大的数据包是什么? 我读了最大的数据报大小是65507.我应该使用什么缓冲区大小来发送这样的大小? 这有助于提高吞吐量吗? 常用操作系统(例如Windows,Linux等)支持的典型最大数据报大小是多less? 更新: 数据的一些接收者是没有实现TCP / IP协议栈的embedded式系统。 我知道这个地方充满了对使用可用的东西非常溺爱的人。 但是我希望得到比仅仅关注MTU更好的答案。

git update-server-info做什么?

git update-server-info做什么? 我怎么知道我是否需要它? 手册说: 一个不运行包生成的哑服务器必须在$ GIT_DIR / info和$ GIT_OBJECT_DIRECTORY / info目录中有一些辅助信息文件,以帮助客户端发现服务器具有哪些引用和打包。 这个命令生成这样的辅助文件。 我怎么知道我的服务器是否是笨手笨脚的,它是否做“即时生成包”,以及它是否“必须有一些辅助信息文件”? 我正在通过SSH推送一个Web应用程序到一个裸仓库,然后从这个裸仓库进入Web根目录。

在Django会话中修改字典不会修改会话

我在string键引用的会话中存储字典: >>> request.session['my_dict'] = {'a': 1, 'b': 2, 'c': 3} 我遇到的问题是,当我直接修改字典时,在下一个请求期间值不会被改变: >>> request.session['my_dict'].pop('c') 3 >>> request.session.has_key('c') False # looks okay… … # Next request >>> request.session.has_key('c') True # what gives!

Pythonic的方式分裂成一个列表,rest?

我想在Python 3中,我将能够做到: first, *rest = l 这正是我想要的,但我使用的是2.6。 现在我正在做: first = l[0] rest = l[1:] 这很好,但我只是想知道是否有更优雅的东西。

让Clang在Windows上工作

我遵循了下面的一步一步的指导 ,我已经pipe理了一些小窍门,让clang编译使用code:blocks和MinGW。 太棒了,所以现在我可以添加Clang模块到eclipse(为什么有一个IDE,当你可以有四个),并开始编译。 我可以编译一个不使用标准库的简单程序,但不幸的是,当我尝试编译这个程序时: #include <iostream> using namespace std; int main() { cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! return 0; } 首先我得到这个: .. \ src \ test.cpp:9:10:致命错误:找不到'iostream'文件 所以我将Mingw标题添加到包含path中; 那么我得到这个: '致命的错误:'位/ c + + config.h'文件未find' 这很奇怪。 为什么明文工作,如果该文件不是“位/”? 它是内置于编译器? 没关系,我find了一个实现它,并创build'bits /'的文件。 然后,我得到了一个包括奇怪的错误,似乎表明要么铛没有正确实施预处理器,否则我对预处理器的理解不正确的错误风暴。 C:\Program Files\CodeBlocks\MinGW\lib\gcc\mingw32\4.4.1\include\c++/cwchar:45:26: error: expected value in expression #if _GLIBCXX_HAVE_WCHAR_H 还有更多这样的。 应该是的 […]

debugging模板实例

在使用C ++模板进行元编程时,是否有一种方法可以像debugging器一样使用,以便逐步实现模板的实例化和编译? 现在看来,在创build一个复杂的模板networking时,除了查看编译器错误消息以查看如何实例化模板(如果有任何编译器错误)之外,确实没有很好的debugging方法,并尝试从错误信息后退工作,如果意想不到的事情正在产生。 我不确定是否存在我正在寻找的东西,因为它必须是在编译时完成的东西,但基本上它会是一个方法,就像是逐步执行代码并检查堆栈框架gdb在运行时,在那里编译器可以停止,环境检查模板或嵌套模板集实例化的序列。 例如,我们假设我创build了一些简单的代码,如下所示: template<typename T, typename R = void> struct int_return_type {}; template<typename R> struct int_return_type<int, R> { typedef R type; }; template<typename T, typename R = void> struct float_return_type {}; template<typename R> struct float_return_type<float, R> { typedef R type; }; template<typename T> typename int_return_type<T>::type test() { cout << "T type is int" […]

使用GCC语句expression式的匿名函数

这个问题并不十分具体, 这真的是为了我自己的C丰富,我希望别人也可以发现它有用。 免责声明:我知道很多人都会有这样的冲动:“如果你想做FP,那么就用一种function性语言”。 我在embedded式环境中工作,需要链接到许多其他C库,并没有太多的空间可用于更多的大型共享库,并且不支持许多语言运行时。 而且,dynamic内存分配是不可能的。 我也很好奇。 我们中的许多人都看过这个漂亮的Cmacros,用于lambdaexpression式: #define lambda(return_type, function_body) \ ({ \ return_type __fn__ function_body \ __fn__; \ }) 一个例子是: int (*max)(int, int) = lambda (int, (int x, int y) { return x > y ? x : y; }); max(4, 5); // Example 使用gcc -std=c89 -E test.c ,lambda扩展为: int (*max)(int, int) = ({ […]

前向声明与unique_ptr?

我发现使用类的前向声明与std::unique_ptr结合使用是很有用的,如下面的代码所示。 它编译和GCC工作,但整个事情似乎有点奇怪,我不知道这是标准的行为(即标准所要求的)? 因为当我声明unique_ptr时B不是一个完整的types。 A.hpp #include <memory> class B; class A { std::unique_ptr<B> myptr; // B::~B() can't be seen from here public: ~A(); }; A.cpp #include "B.hpp" //B.hpp has to be included, otherwise it doesn't work. A::~A() = default; // without this line, it won't compile // however, any destructor definiton will do. 我怀疑这与析构函数有关(因此需要调用unique_ptr<B>的析构函数)是在特定的编译单元(A.cpp)中定义的。