小编pts*_*pts的帖子

谁正在侦听Mac OS X上的给定TCP端口?

在Linux上,我可以使用netstat -pntl | grep $PORTfuser -n tcp $PORT找出哪个进程(PID)正在侦听指定的TCP端口.如何在Mac OS X上获得相同的信息?

macos netstat tcp listen

1267
推荐指数
14
解决办法
88万
查看次数

如何增加Java堆栈大小?

我问这个问题是为了了解如何在JVM中增加运行时调用堆栈的大小.我已经得到了答案,我还得到了许多有用的答案和评论,这些答案和评论与Java如何处理需要大型运行时堆栈的情况有关.我已经用答案摘要扩展了我的问题.

最初我想增加JVM堆栈大小,所以程序就像没有运行的程序一样StackOverflowError.

public class TT {
  public static long fact(int n) {
    return n < 2 ? 1 : n * fact(n - 1);
  }
  public static void main(String[] args) {
    System.out.println(fact(1 << 15));
  }
}
Run Code Online (Sandbox Code Playgroud)

相应的配置设置是java -Xss...具有足够大值的命令行标志.对于TT上面的程序,它与OpenJDK的JVM一样:

$ javac TT.java
$ java -Xss4m TT
Run Code Online (Sandbox Code Playgroud)

其中一个答案还指出,这些-X...标志是依赖于实现的.我在用

java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.1) (6b18-1.8.1-0ubuntu1~8.04.3)
OpenJDK 64-Bit Server VM (build 16.0-b13, mixed mode)
Run Code Online (Sandbox Code Playgroud)

也可以仅为一个线程指定一个大堆栈(参见其中一个答案如何).建议使用此方法java -Xss...以避免为不需要它的线程浪费内存.

我很好奇上面的程序需要多大的堆栈,所以我运行它n增加了:

  • -Xss4m就足够了 fact(1 …

java stack-overflow stack

114
推荐指数
4
解决办法
17万
查看次数

Java:获取字符串中最后一个单词的最简单方法

在Java中获取字符串的最后一个字的最简单方法是什么?你可以假设没有标点符号(只是字母字符和空格).

java string

46
推荐指数
5
解决办法
11万
查看次数

适用于Linux的可靠高效的键值数据库?

我需要一个快速,可靠且内存有效的Linux键值数据库.我的密钥大约是128个字节,最大值大小可以是128K或256K.数据库子系统不应使用超过大约1 MB的RAM.总数据库大小为20G(!),但一次只访问一小部分数据.如果有必要,我可以将一些数据blob从数据库中移出(到常规文件),因此大小最多可降至2 GB.数据库必须在系统崩溃后继续存在,而不会丢失最近未修改的数据.我的读取次数比写入次数多100倍.如果它可以使用块设备(没有文件系统)作为存储,那么这是一个加分.我不需要客户端 - 服务器功能,只需要一个库.我需要Python绑定(但如果它们不可用,我可以实现它们).

我应该考虑哪些解决方案,您建议使用哪种解决方案?

我知道哪些候选人可以工作:

  • Tokyo Cabinet(Python绑定是pytc,另见pytc示例代码,支持哈希和B +树,事务日志文件等等,桶数组的大小在数据库创建时固定; 编写器必须关闭文件以给其他人一个很多小写,重新打开每个文件都很慢; Tyrant服务器可以帮助处理大量的小写; 东京内阁,东京暴君和伯克利数据库之间的速度比较)
  • VSDB(即使在NFS上也是安全的,没有锁定;那么障碍呢?;更新非常慢,但不像cdb那么慢; 2003年的最新版本)
  • BerkeleyDB(提供崩溃恢复;提供事务; bsddbPython模块提供绑定)
  • Samba的TDB(使用事务和Python绑定,一些用户经历了损坏,有时mmap()是整个文件,repack操作有时会使文件大小翻倍,如果数据库大于2G(即使在64位系统上)也会产生神秘的故障,集群实现(CTDB也可用;文件经过大量修改后变得太大;文件在大量哈希争用后变得太慢;没有内置方法来重建文件;通过锁定单个哈希桶来实现非常快速的并行更新)
  • aodbm(仅附加,因此系统崩溃,使用Python绑定)
  • hamsterdb(使用Python绑定)
  • C-tree(具有高性能的成熟,多功能商业解决方案,具有功能减少的免费版本)
  • TDB(自2001年起)
  • bitcask(日志结构,用Erlang编写)
  • 各种其他DBM实现(例如GDBM,NDBM,QDBM,Perl的SDBM或Ruby;可能他们没有适当的崩溃恢复)

我不会用这些:

  • MemcacheDB(客户端 - 服务器,使用BereleleyDB作为后端)
  • cdb(需要在每次写入时重新生成整个数据库)
  • http://www.wildsparx.com/apbcdb/(同上)
  • Redis(将整个数据库保存在内存中)
  • SQLite(它没有定期抽真空就变得非常慢,请参阅Firefox 3.0中位置栏中的自动完成,即使版本3.1及更高版本的sqlite允许auto_vacuum;注意:小写入事务可能非常慢;注意:如果繁忙的过程是做很多交易,其他流程都饿了,他们永远无法获得锁定)
  • MongoDB(太重了,将值视为具有内部结构的对象)
  • Firebird(基于SQL的RDBMS,太重了)

仅供参考,最近一篇关于 Linux杂志中关键值数据库的文章.

仅供参考,一个较旧的软件列表

仅供参考,MemcacheDB,Redis和Tokyo Cabinet Tyrant …

python database store key-value embedded-database

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

解释变量隐藏在这个Java代码中是如何工作的

考虑下面的代码

class A
{
    int x = 5;
    void foo()
    {
        System.out.println(this.x);
    }
}
class B extends A
{
    int x = 6;
    // some extra stuff
}
class C
{
    public static void main(String args[])
    {
         B b = new B();
         System.out.println(b.x);
         System.out.println(((A)b).x);
         b.foo();
    }
 }  
Run Code Online (Sandbox Code Playgroud)

该计划的输出是

6
5
5
Run Code Online (Sandbox Code Playgroud)

我理解前两个但是无法理解最后一个.b.foo()如何打印5.B类将继承foo方法.但它不应该打印bx会打印什么?到底发生了什么?

java oop inheritance

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

将数据管道到需要TTY(终端)的Linux程序

我在Linux中有一个程序,如果它的stdin/stdout不是TTY(终端设备),它就拒绝运行.是否有一个易于使用的工具,它将创建一个PTY,使用新创建的TTY启动程序,并通过stdin/stdout复制所有数据?

用例不是交互式的,而是脚本的.我正在寻找最轻量级的解决方案,最好不要创建TCP连接,也不需要安装太多其他工具和库.

linux terminal pipe tty pty

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

在不安装Xcode的情况下将GCC安装到Mac OS X Leopard

我想将gcc安装到Mac OS X Leopard,并使用MacPorts从源代码编译一些软件.正如http://www.macports.org/install.php建议的那样,我已经注册为Apple开发人员.现在我必须下载Xcode开发人员工具,但它似乎是巨大的.对于gcc和一些头文件(主要用于控制台应用程序),是否真的需要这么大的下载(3.5GB或1GB)?是否有较小的下载(可能在其他网站上)可行?我是否按照MacPorts网站的要求找到了正确的下载(Xcode Developer Tools)?

我不需要IDE,我不需要任何与iOS相关的软件,我不需要大的SDK,我不想做任何GUI编程.

我没有安装盘.

有一个类似的问题有没有办法在OSX中安装gcc而不安装Xcode?.我的问题是不同的,因为我不介意下载和正在使用Xcode的部分来获取gcc,只要它相当大,比如300 MB未压缩.那可能吗?

http://developer.apple.com/devcenter/mac/index.action我找到了下载链接http://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.2__final/ xcode_3.2.5_and_ios_sdk_4.2_final.dmg,这是一个3.5GB的下载.根据下面的一些答案,我注意到Xcode 3.2.5适用于Snow Leopard,我需要Leopard的Xcode 3.1.4(1GB),我可以从http://connect.apple.com/获取(标题为Downloads和ADC Program Assets)注册并登录后,单击Downloads/Developer Tools部分,然后找到Xcode 3.1.4 Developer Tools.下载链接是http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/download?path=%2FDeveloper_Tools%2Fxcode_3.1.4_developer_tools%2Fxcode314_2809_developerdvd.dmg.

macos xcode gcc macports

20
推荐指数
3
解决办法
7万
查看次数

如何通过获取当前分支中的版本来自动解决Git冲突?

让我们假设foo/bar.txt在运行时遇到合并冲突:

$ git checkout A
$ git merge B
Run Code Online (Sandbox Code Playgroud)

我想foo/bar.txt从分支A中自动解决冲突.(我知道我在做什么,我确实需要这个.分支B中的版本是错误的,我不关心失去工作中的变化在这种情况下树.)似乎我可以通过运行这些命令来做到这一点:

$ git reset    foo/bar.txt
$ git checkout foo/bar.txt
Run Code Online (Sandbox Code Playgroud)

是否有更简单的单命令解决方案?

不幸的是,foo/bar.txt即使没有冲突,这些命令也会改变,我不希望这样.如果没有冲突,我希望保持foo/bar.txt在任何状态下git merge B都离开它.

所以我需要一个Unix shell命令,它会检测是否存在冲突foo/bar.txt,如果有,它将通过foo/bar.txt从当前分支获取版本来解决冲突.它不会做任何其他事情,即它不会修改其他文件,它不会提交更改,并且foo/bar.txt如果该文件中没有冲突则不会更改.

git merge automation conflict

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

用于C++的套接字API或库?

我最近越来越多地使用C++.我用C做了一些(非常小的)套接字编程,但是对使用C++做一些工作很感兴趣.我只能在基于C的套接字实现上找到参考/教程.是否有一个原因?我知道,或者相信我知道你可以使用C套接字库来实现C++,但我不确定.

是否有比其他人更频繁使用的C++套接字库?这不是一个主观问题,我实际上是在寻找Socket API /库对C++的作用.

我在套接字编程和C++方面相当新,所以请不要回答任何问题.

谢谢

c++ sockets network-programming

17
推荐指数
3
解决办法
3万
查看次数

有可能让gcc忽略未知的-W ...命令行选项吗?

我有一个构建配置,有一些"-Wno"选项,涵盖'gcc'和'clang'.问题是gcc不识别某些特定的clang并且因为它而无法编译.

错误示例:

 error: unrecognized command line option "-Wno-self-assign"
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉gcc忽略它无法识别的命令行选项?

gcc command-line-arguments

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