小编Har*_*riv的帖子

在Delphi中找到"非泄漏"内存使用问题的策略或工具?

一台旧应用程序在服务器更新后开始大量消耗内存.在程序挂起之前,内存使用似乎会超出限制.

根据FastMM4和EurekaLog,没有内存泄漏(28字节除外),所以我假设应用程序关闭时释放所有内存.

是否有适合跟踪此类内存问题的工具或策略?

delphi memory-management delphi-2006

10
推荐指数
2
解决办法
2263
查看次数

如何在Delphi项目中包含Subversion修订版号

我想将Delphi的源代码和exe版本的源代码修订版.自动执行此操作的最佳方法是什么?

我想在"关于"屏幕和项目的版本信息中显示修订号.

我正在使用Delphi IDE(2006/2007)和Tortoise SVN.

svn delphi

9
推荐指数
3
解决办法
6825
查看次数

支持ANSI/VT100的AJAX控制台窗口?

我打算编写网关Web应用程序,它需要具有VT100/ANSI转义码支持的"终端窗口".是否有基于AJAX的替代方案来执行此类任务?

我在想这样的事情:http://tryruby.hobix.com/

我首选的系统后端是Python/Twisted/Pylons,但由于我只是计划,我将探索每个选项.

python ajax vt100

8
推荐指数
2
解决办法
4694
查看次数

matlab中的分水岭算法

谁知道如何在matlab中编写一个函数来分割细胞并使用分水岭算法计算平均细胞面积?任何帮助将非常感激.谢谢!

这是酵母细胞的图像

酵母细胞

matlab report image-segmentation watershed

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

适用于Python的类似Delphi的GUI设计器

是否有任何Python工具包与表单设计器类似于Delphi,例如,可以拖放控件来形成,移动它们等.

python user-interface form-designer

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

Delphi/DBExpress导致内存泄漏

我的应用程序遇到了一个奇怪的问题,它的内存使用量时不时地上升几百兆,最终应用程序冻结了.该应用程序是用Delphi编写的,它使用数据库,COM(用于OPC)和TCP/IP.

使用FastMM,我已经关注了内存使用情况的屏幕截图.我不完全确定如何读取该表,但看起来有些东西已经分配了296463552个字节(0x100fb000,这是"幻数"?)三次.

内存使用情况

有任何想法吗?有没有办法跟踪非Delphi-MM内存分配?

我正在使用Delphi 2007和FastMM 4.96.

编辑:

我使用IMallocSpy编写了一个小助手类来跟踪COM内存分配.这是我得到的摘录:

00119023    5:52:27.484 [4496] TCOMAllocSpy.PreRealloc size: 269462304
00119024    5:52:27.734 [4496] (0002760C){ntdll.dll   } [7C82860C] KiFastSystemCallRet + $0 
00119025    5:52:27.734 [4496] (0009F83A){MyApp.exe} [004A083A] JclDebug.JclCreateThreadStackTrace (Line 3943, "JclDebug.pas" + 7) + $1E 
00119026    5:52:27.734 [4496] (003D496A){MyApp.exe} [007D596A] ComLeakHelper.TCOMAllocSpy.DebugStack (Line 46, "ComLeakHelper.pas" + 2) + $9 
00119027    5:52:27.734 [4496] (003D4B52){MyApp.exe} [007D5B52] ComLeakHelper.TCOMAllocSpy.PreRealloc (Line 125, "ComLeakHelper.pas" + 4) + $2 
00119028    5:52:27.734 [4496] (000053B6){MyApp.exe} [004063B6] System.@WStrAsg (Line 14090, "sys\system.pas" + 10) + $0 
00119029    5:52:27.734 [4496] (002E4490){MyApp.exe} [006E5490] …
Run Code Online (Sandbox Code Playgroud)

delphi debugging memory-leaks memory-management dbexpress

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

DebugView的替代品?

我在测试期间使用Sysinternals DebugView进行调试/记录,这非常好.不过我在想是否有更先进的工具.

我正在寻找的功能:

  • 实时过滤器 - 记录所有内容(好吧,一切"有趣"),通过过滤更改视图
  • 按进程名称过滤
  • 通过筛选将日志拆分为不同的视图
  • 解析消息
  • 扩展到OutputDebugString,从非Windows设备接收TCP/UDP消息
  • 脚本(?)

我在DebugView中喜欢的功能:

  • 过滤
  • 颜色
  • 好时间戳
  • 实时视图

有什么工具吗?还是其他可用的技术?

我使用的是Windows XP/7,主要使用Delphi和Python进行编程.

debugging logging debugview sysinternals

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

如何在Delphi Server应用程序中获取完整的调用堆栈

我有一个多层软件,它是两个应用程序(GUI,DataSnap Server).我的DataSnap服务器应用程序有一些错误导致EAccessViolation在某些时候发生.这样的:

Exception EAccessViolation  in module unidac160.bpl at 00010CB1.
Access Violation at 002B77832 in module unidac160.bpl. Read of  address 0000000C
Run Code Online (Sandbox Code Playgroud)

我想获得完整的调用堆栈并将其记录在文件中.我也使用eurekalog,但它仅适用于gui应用程序.

delphi debugging callstack exception-handling datasnap

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

Java 7中的链式调用?

我刚刚阅读了Java 7预览演示文稿(pdf),链接调用上有一张幻灯片.以下是幻灯片中使用的示例:

// Construction with setters
DrinkBuilder margarita = new DrinkBuilder();
margarita.add("tequila");
margarita.add("orange liqueur");
margarita.add("lime juice");
margarita.withRocks();
margarita.withSalt();
Drink drink = margarita.drink();

// Construction with chained invocation
Drink margarita = new DrinkBuilder()
    .add("tequila")
    .add("orange liqueur")
    .add("lime juice")
    .withRocks()
    .withSalt()
    .drink();
Run Code Online (Sandbox Code Playgroud)

我对此感到复杂.不应该将太多的方法调用链接到一个语句中.在另一方面,写作margarita.this()margarita.that()不是太方便无论是.

现在,我从Delphi世界来到Java.在Delphi中有with语言结构.这是少数人所珍惜和许多人的厌恶(或者是相反的方式?).我觉得with比链式调用的想法更优雅(我认为它基于void方法返回对它被调用的对象的引用 - 这是我不喜欢的部分,因为void应该什么都不返回).

我很欣赏withJava采用的语言功能,因此示例代码可以像这样编写:

Drink margarita = null;
with (new DrinkBuilder()) {
    add("tequila");
    add("orange liqueur");
    add("lime juice");
    withRocks();
    withSalt(); …
Run Code Online (Sandbox Code Playgroud)

java language-features language-design java-7

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

为Delphi应用程序选择数据库和许可

我们有Delphi XE2.我们正在为我们的应用程序寻找数据库.我们尝试过Absolute Database,它支持我们需要的大多数SQL命令.我看到大多数Delphi用户选择Firebird但似乎很难使用.我对数据库和许可证非常困惑.这是我的问题:

  1. 当我们选择数据库时,让我们说绝对数据库,Firebird,MySql嵌入等等,如果我们有例如3.000客户,我们还需要向数据库开发人员支付费用吗?还是一次性费用?我很困惑,因为他们说我们购买时,我们可以在我们的建筑物内使用它(http://www.componentace.com/order/licenses.php).但是当我们发布我们的软件时,我们的客户当然需要使用相同的数据库.

  2. Absolute DB易于安装并支持大多数SQL查询.Firebird不支持大多数SQL查询.它是否正确?

  3. 当我们尝试使用Firebird时,我们使用FlameRobin来设计数据库.但是当我们尝试使用IB组件进行连接时,它会说"无法连接数据库".

非常感谢你...

database delphi firebird embedded-database firebird-embedded

6
推荐指数
2
解决办法
1412
查看次数