问题列表 - 第39961页

Java fork连接算法分析

我正在研究Java 7中新的Fork-Join框架(作为课程要求的一部分),并分析与传统线程机制相比的性能改进.使用新的fork join框架可以保证更快运行的分而治之算法有哪些.你能否提出我可以用来分析性能差异的任何非平凡算法?

java concurrency fork-join

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

如何在IE和Firefox中解析javascript中的XML?

我正在尝试编写一段代码来解析IE和Firefox中的javascript.

以下适用于IE,并且功能无需在firefox中抱怨

function XmlDom(sXml){
    var oXml;
    if (window.ActiveXObject) {
        // ie
        oXml = new ActiveXObject("Microsoft.XMLDOM");
        oXml.resolveExternals = false;
        oXml.async = false;
        oXml.loadXML(sXml);
    }
    else if (window.DOMParser){

        var parser = new DOMParser(); 
        oXml = parser.parseFromString(sXml, "text/xml");

    }
return oXml
}
Run Code Online (Sandbox Code Playgroud)

以下适用于IE,但在Firefox下会出现错误(因为childNodes不存在)

var oXml = XmlDom(sourceXML);
var listHtml = "";
if (oXml.firstChild != null) {
    var childNodes = null;
    try {
        childNodes = oXml.lastChild.lastChild.firstChild.childNodes;
    }
    if (childNodes != null && childNodes.length > 0) {

        for (var i = 0; i < childNodes.length; …
Run Code Online (Sandbox Code Playgroud)

javascript xml

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

查找PHP脚本终止源的最佳实践

我有一个PHP脚本,它从数据库中抓取一大块数据,对其进行处理,然后查看是否有更多数据.这个进程无限期地运行,我在一台服务器上一次运行其中几个.

它看起来像:

<?php
    while($shouldStillRun)
    {
       // do stuff
    }
    logThatWeExitedLoop();
?>
Run Code Online (Sandbox Code Playgroud)

问题是,经过一段时间后,某些事情导致进程停止运行,我无法调试它并确定原因.

以下是我到目前为止获取信息的方法:

  • error_log - 记录所有错误,但错误日志中不显示任何错误.
  • register_shutdown_function - 注册了自定义关闭功能.这确实被调用,所以我知道进程没有被服务器杀死,它被允许完成. (或者至少我认为这是被称为的情况?)
  • debug_backtrace - 在我的自定义关闭函数中记录了debug_backtrace().这只显示一个调用,这是我的自定义关闭功能.
  • 记录如果到达脚本的末尾 - 在循环之外,我有一个函数记录脚本退出循环(因此将正常到达源文件的末尾).当脚本随机死亡时,它不会记录这个,所以无论什么杀死它,都会在处理过程中杀死它.

你会找到什么其他的调试方法来找到罪魁祸首?

注意:我应该补充一点,这不是max_execution_time的问题,对于这些脚本禁用了max_execution_time.被杀之前的时间是不一致的.它可能会在它死亡之前运行10秒或12小时.


更新/解决方案:谢谢大家的建议.通过记录输出,我发现当MySql查询失败时,脚本被设置为die().D'哦.更新它以记录mysql错误然后终止.现在就像魅力一样工作!

php apache debugging

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

以编程方式检测内存泄漏

如果我故意创建了一个在遭受内存泄漏的情况下处理数据的应用程序,我会注意到报告的内存,例如:

Runtime.getRuntime().freeMemory()
Run Code Online (Sandbox Code Playgroud)

开始在1到2 MB的可用内存之间振荡.

然后应用程序进入如下循环:GC,处理一些数据,GC等,但由于GC经常发生,应用程序基本上不再做太多其他事情了.甚至GUI也需要年龄才能做出响应(而且,不,我不是在谈论EDT问题,它实际上是VM基本上停留在一些无休止的GC'模式).

我想知道:有没有办法以编程方式检测到JVM没有足够的内存?

请注意,我不是在谈论内存错误,也不是在检测内存泄漏本身.

我正在谈论检测到应用程序运行的内存如此之低,以至于它基本上都在调用GC,几乎没有时间做其他事情(在我的假设示例中:处理数据).

例如,它是否可以重复读取在一分钟内可用的内存量,并且看到如果数字在不同值之间"振荡",例如4 MB,则得出结论是存在一些泄漏并且该应用程序已无法使用?

java memory-leaks

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

从Entity Framework Model为SQLite数据库生成SQL

是否可以使用实体框架从模型生成SQLite数据库?我创建了一个SQLite连接并创建了一个模型,但是当我单击"从模型生成数据库"时,我得到以下内容,它看起来像MS SQL,如果使用SQLite执行会产生错误(只是文件的开头):

-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure
-- --------------------------------------------------
-- Date Created: 11/25/2010 00:26:41
-- Generated from EDMX file: G:\Foo\Bar\Model1.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [foobar.sqlite];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO
...
Run Code Online (Sandbox Code Playgroud)

我的连接字符串如下所示,所以我肯定选择了正确的数据库类型:

'metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SQLite;provider connection string="data source=G:\foo\bar\baz"'
Run Code Online (Sandbox Code Playgroud)

不应该这样工作吗?

编辑:

由于似乎没有人知道答案我会更容易:是否可以为除MICROSOFT SQL SERVER之外的任何数据库生成带有EF的SQL代码?

.net sql-server sqlite orm entity-framework

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

从Email PHP中提取正文

我目前正在使用imap流来从收件箱中获取电子邮件.

一切都工作正常,但我不确定如何获取电子邮件的正文和标题.如果我这样做imap_body($connection,$message),基本64相当于电子邮件附件包含在文本中.

我目前正在使用此功能来获取附件.

http://www.electrictoolbox.com/function-extract-email-attachments-php-imap/

php imap

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

NSIS:无法从Windows 7 64位的注册表中获取JRE版本

我正在使用NSIS脚本为我的Java项目生成Windows安装程序.在此安装程序中,我想在继续之前检查计算机是否具有正确的JRE版本.

这是我获取JRE版本的代码片段: -

ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion"

# display $1 value for testing purpose
MessageBox MB_OK "Version: $1"
Run Code Online (Sandbox Code Playgroud)

此代码在Windows XP中运行良好,但我无法在Windows 7 64位中运行...版本号始终为空.我检查注册表,我很确定路径是正确的,"CurrentVersion"有一个值.

谁能告诉我这里做错了什么?

非常感谢!

registry nsis

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

哪个是更高效的正则表达式?

我最近收到了一些求职者测试结果,其中一个人声称他们给出的解决方案更有效率(我不会说哪个,因为我不想影响答案).毋庸置疑,我对此表示怀疑,但我对RE编译器的内部工作原理并不了解,以便进行智能评论.

问题是:给出正则表达式来识别0到99之间的数字.

答案是:

[0-9]{1,2}
[0-9]?[0-9]
[0-9]|([0-9][0-9])
Run Code Online (Sandbox Code Playgroud)

我感兴趣的是为什么其中任何一个更快(或以其他任何方式更好).提供证据而不是猜想的奖励点,但如果你说得足够令人信服,我仍然会猜测:-)

regex performance

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

如何在异常中打印完整堆栈跟踪?

例如,在一个地方......

//---------------a
try
{
    // some network call
}
catch(WebException we)
{
    throw new MyCustomException("some message ....", we);
}
Run Code Online (Sandbox Code Playgroud)

......在另一个地方......

//--------------b
try
{
    // invoke code above
}
catch(MyCustomException we)
{
    Debug.Writeline(we.stacktrace);   // <----------------
}
Run Code Online (Sandbox Code Playgroud)

我打印的堆栈跟踪,它只从a到b开始,它不包含WebException的内部堆栈跟踪.

如何打印所有堆栈跟踪???

c# exception-handling stack-trace

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

使用DataTrigger更改左边距或右边距(或两者)

所以我有一个网格需要根据VM中的标志来改变它的边距.看起来像datatriggers是处理这个问题的正确方法.

所以我设置了这个:

<Grid x:Name="myGrid" Grid.Row="1" Margin="30,0">
    <Grid.Style>
        <Style TargetType="Grid">
            <Style.Triggers>
                <DataTrigger Binding="{Binding UI_Preferences.RightPanelPinned}" Value="true" >
                    <Setter Property="Margin" value="200" />
                </DataTrigger>
                <DataTrigger Binding="{Binding UI_Preferences.LeftPanelPinned}" Value="true" >
                    <Setter Property="Margin" value="200" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Grid.Style>
</Grid>
Run Code Online (Sandbox Code Playgroud)

哪个有效,但我无法弄清楚如何单独修改左边距或右边距.

wpf xaml

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