问题列表 - 第22987页

Perl Parallel :: ForkManager wait_all_children()花费的时间过长

我有一个使用的脚本Parallel::ForkManager.但是,即使在所有子进程完成后,wait_all_children()进程也需要非常长的时间.我知道的方法是打印一些时间戳(见下文).有谁知道可能导致这种情况的原因(我的机器上有16个CPU内核)?

my $pm = Parallel::ForkManager->new(16);
for my $i (1..16) {
    $pm->start($i) and next;

    ... do something within the child-process ...

    print (scalar localtime), " Process $i completed.\n";
    $pm->finish();
}
print (scalar localtime), " Waiting for some child process to finish.\n"; 
$pm->wait_all_children();
print (scalar localtime), " All processes finished.\n"; 
Run Code Online (Sandbox Code Playgroud)

很明显,我会先得到Waiting for some child process to finish消息,比如说时间戳7:08:35.然后我会得到一个Process i completed消息列表,最后一个消息7:10:30.但是,All Processes finished直到7:16:33(!)我才收到消息.为什么在7:10:30到7:16:33之间有6分钟的延迟?谢谢!

parallel-processing perl time-wait

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

JPA认为我正在删除一个分离的对象

我有一个DAO,我曾经使用JPA加载和保存我的域对象.我终于设法使交易工作正常,现在我又遇到了另一个问题.

在我的测试用例中,我调用我的DAO来加载具有给定id的域对象,检查它是否已加载,然后调用相同的DAO来删除刚刚加载的对象.当我这样做时,我得到以下内容:

java.lang.IllegalArgumentException: Removing a detached instance mil.navy.ndms.conops.common.model.impl.jpa.Group#10
 at org.hibernate.ejb.event.EJB3DeleteEventListener.performDetachedEntityDeletionCheck(EJB3DeleteEventListener.java:45)
 at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:108)
 at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:74)
 at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:794)
 at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:772)
 at org.hibernate.ejb.AbstractEntityManagerImpl.remove(AbstractEntityManagerImpl.java:253)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:600)
 at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:180)
 at $Proxy27.remove(Unknown Source)
 at mil.navy.ndms.conops.common.dao.impl.jpa.GroupDao.delete(GroupDao.java:499)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:600)
 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
 at $Proxy28.delete(Unknown Source)
 at mil.navy.ndms.conops.common.dao.impl.jpa.GroupDaoTest.testGroupDaoSave(GroupDaoTest.java:89)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:600)
 at junit.framework.TestCase.runTest(TestCase.java:164)
 at junit.framework.TestCase.runBare(TestCase.java:130)
 at junit.framework.TestResult$1.protect(TestResult.java:106)
 at junit.framework.TestResult.runProtected(TestResult.java:124)
 at …
Run Code Online (Sandbox Code Playgroud)

java spring entity jpa

41
推荐指数
4
解决办法
6万
查看次数

小开发团队的Git分支策略

我们有一个网络应用程序,我们几乎每天更新和发布.我们使用git作为我们的VCS,我们当前的分支策略非常简单和破坏:我们有一个主分支,我们检查我们感觉良好的变化.这是有效的,但直到我们检查一个突破性的变化.

有没有人对小型团队有最喜欢的git分支策略,满足以下要求:

  1. 适用于2到3名开发人员的团队
  2. 轻量级,而不是太多的过程
  3. 允许开发人员轻松地隔离有关错误修复和更大功能的工作
  4. 允许我们保持稳定的分支(当我们必须让我们的生产服务器工作时,那些'哦'废话'的时刻)

理想情况下,我很乐意看到一个开发人员处理新bug的分步过程

git branch git-branch

183
推荐指数
4
解决办法
9万
查看次数

如何在Java中创建线程安全的一次性read-many值?

这是我在处理更复杂系统时经常遇到的问题,而且我从来没有想过要解决的好方法.它通常涉及共享对象主题的变体,其构造和初始化必然是两个不同的步骤.这通常是因为体系结构要求,类似于applet,因此建议我合并构造和初始化的答案是没有用的.系统最迟必须以Java 4为目标,因此建议仅在以后的JVM中提供支持的答案也没有用.

举个例子,假设我有一个类,它被构造成适合应用程序框架,如下所示:

public class MyClass
{

private /*ideally-final*/ SomeObject someObject;

MyClass() {
    someObject=null;
    }

public void startup() {
    someObject=new SomeObject(...arguments from environment which are not available until startup is called...);
    }

public void shutdown() {
    someObject=null; // this is not necessary, I am just expressing the intended scope of someObject explicitly
    }
}
Run Code Online (Sandbox Code Playgroud)

我无法使someObject成为final,因为在调用startup()之前无法设置它.但我真的希望它反映它的一次写入语义,并能够从多个线程直接访问它,最好避免同步.

我的想法是表达和执行一定程度的最终性,我猜想我可以创建一个通用的容器,就像这样(UPDATE - 更正此类的线程化代码):

public class WormRef<T>
{
private volatile T                      reference;                              // wrapped reference

public WormRef() {
    reference=null;
    }

public WormRef<T> init(T val) …
Run Code Online (Sandbox Code Playgroud)

java multithreading

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

当你无法修复表时,如何修复MySQL"错误的密钥文件"错误?

我正在尝试运行一个相当大的查询,该查询应该每晚运行以填充表格.我收到一个错误,Incorrect key file for table '/var/tmp/#sql_201e_0.MYI'; try to repair it但我正在使用的存储引擎(无论默认是什么,我猜?)不支持修复表.

我该如何解决这个问题,以便运行查询?

mysql mysql-error-126

38
推荐指数
4
解决办法
9万
查看次数

python 2.4中的datetime命令行参数

我想在命令行上将datetime值传递给我的python脚本.我的第一个想法是使用optparse并将值作为字符串传递,然后使用datetime.strptime将其转换为日期时间.这在我的机器上工作正常(python 2.6),但是我还需要在运行python 2.4的机器上运行这个脚本,它没有datetime.strptime.

如何将日期时间值传递给python 2.4中的脚本?

这是我在2.6中使用的代码:

parser = optparse.OptionParser()
parser.add_option("-m", "--max_timestamp", dest="max_timestamp",
                  help="only aggregate items older than MAX_TIMESTAMP", 
                  metavar="MAX_TIMESTAMP(YYYY-MM-DD HH24:MM)")
options,args = parser.parse_args()
if options.max_timestamp:
    # Try parsing the date argument
    try:
        max_timestamp = datetime.datetime.strptime(options.max_timestamp, "%Y-%m-%d %H:%M")
    except:
        print "Error parsing date input:",sys.exc_info()
        sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

python datetime

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

fork()后管道的行为

在UNIX环境中阅读高级编程中的管道时,我注意到在fork之后,父级可以close()读取管道的末尾,并且它不会关闭子级的读取端.当一个进程分叉时,它的文件描述符会被保留吗?

我的意思是,在fork之前,管道读取文件描述符的保留计数为1,并且在fork 2之后.当父级关闭其读取侧时,fd变为1并且为子级保持打开状态.这基本上是发生了什么?常规文件描述符是否也会出现这种情况?

c unix fork pipe

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

Windows移动Compact Framework SqlCeConnection

我听说最好在应用启动时打开一个连接,并在应用关闭时关闭它.

多个连接会出现什么问题?

有任何文章,最好的做法是有一个连接?

你对sql ce有什么经验?

c# compact-framework windows-mobile sql-server-ce

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

为什么指针的大小在C++中是4bytes

在32位机器上,为什么指针的大小是32位?为什么不是16位或64位?什么是缺点和优点?

c++

10
推荐指数
3
解决办法
6413
查看次数

我可以创建自定义plist结构定义吗?

在Xcode中编辑plist文件时,它可以检测plist的类型并显示人类可读的字符串,以便更容易编辑文件.例如,Info.plist.

感谢这个问题,我找到了(或者)存储结构定义的地方,如InfoPlistStructDefs.xcodeplugin.但是,如果我把自己的文件放在那里,没有什么有趣的事情发生.也就是说,它不会显示在可能的属性列表类型列表中.

那么有谁知道如何使Xcode或外部属性列表编辑器应用程序识别自定义plist结构定义?

macos xcode plist

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