小编pro*_*tor的帖子

如何获取其实例泄漏内存的定制结构的名称?

我正在使用解析器,它将通过FASTMM4内存泄漏报告并将所有相关数据存储在定制的结构/类中.我使用VirtualTreeView显示已将实例泄露为树中节点的每个类. - 请注意,FIRST节点显示未知.这是因为FASTMM调用方法AClass来确定它是否是一个类的天气.当它找到自定义结构时,它会将它们标记为未知,这不会使我的报表分析器非常有效,因为大多数内存泄漏来自这些自定义结构和记录.

问题:有没有办法使用DebugInfo或其他工具(如JVCL)来收集这些调试符号,并将它们的内存地址与memory-leak-report-file中的内存地址进行比较?我希望我的树停止显示UNKNOWN并显示这些自定义结构的名称.我是Delphi编程的新手,甚至更新解决内存泄漏问题,所以任何帮助都意味着很多!

delphi debugging memory-leaks fastmm

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

为jQuery dataTables实现自定义sSortType和sort函数

我很难按照文档页面上的说明操作.我有一个表格,显示一列中的平均持续时间,采用HH:MM格式,例如10:45表示十小时四十五分钟.我希望能够按照此列中的值对整个表进行排序.

这是我的初始化代码:

    var aoTable = $("#TableStatistic").dataTable({
    "bDestroy": true,
    "sDom": "<'row-fluid dt-header'<'span6'f><'span6'T>>t<'row-fluid dt-footer'<'span6'i><'span6'p>>",
    "oTableTools": {
        "aButtons": ["xls", "pdf", "print"],
        "sSwfPath": "../Content/media/swf/copy_csv_xls_pdf.swf"
    },
    "aaData": statisticsModel.byCategoriesList(),
    "aaSorting": [[0, "desc"]],
    "bPaginate": false,
    "aoColumns": [
        { "mDataProp": "CategoryName", "sTitle": "Reports.CategoryName" },
        { "mDataProp": "AverageTime", "sTitle": "Reports.AverageTime", "sSortDataType": "duration-desc"},
        { "mDataProp": "NumberOfProblemsSolved", "sTitle": "Reports.NumberOfProblemsSolved" }
    ],
    "oLanguage": MeridianTranslation.DataTable

});
Run Code Online (Sandbox Code Playgroud)

以下是认为在我的表中添加新的排序函数和新的sSortType的正确方法:

jQuery.extend(jQuery.fn.dataTableExt.oSort['duration-desc'] = function (x, y) {
    var xHours = parseInt(x.slice(0, x.indexOf(':')));
    var xMinutes = parseInt(x.slice(x.indexOf(':') + 1, x.length)) + xHours …
Run Code Online (Sandbox Code Playgroud)

sorting jquery datatables

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

使用大型TObjectList并释放未使用的部分

我使用TObjectList(Delphi 2007)存储大量数据 - 我希望有大约30万个元素甚至更多.但是,当创建列表时,它的默认大小设置为仅存储四个元素,如果一个尝试添加第五个元素则为8,如果一个尝试添加第九个元素则为16,依此类推.数字可能已关闭,但我认为工作正确.这样做的问题是必须将所有元素从内存的释放部分复制到新扩展列表迁移的新内存块.我想设置一个特定的初始大小并释放(或撤消内存的保留,因为保留和分配不是相同的事情)列表已分配/保留的任何未使用的空间.这可能不是很多代码,但我认为应该以问答形式对这个问题进行永久,可靠的引用.

delphi tobjectlist

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

生成FASTMM报告而不关闭对话框

如果可能的话,我希望我的Delphi项目在程序运行时生成一个FASTMM内存泄漏报告,并在关闭时附加到该报告,而不必在每次关闭程序时都看到此对话框.

如果在运行期间无法使FMM创建报告并编辑N次,我至少会想要摆脱烦人的对话框,因为我已经有了比对话框显示更详细的报告.

delphi fastmm

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

有没有办法在Delphi中实例化所需数量的对象,而无需迭代?

我认为C++支持以下内容:

Object objects[100];
Run Code Online (Sandbox Code Playgroud)

这会实例化100个对象,对吧?是否有可能在Delphi(特别是2007年)中做到这一点?除了以下之外的东西:

for i:=0 to 99 do
  currentObject = TObject.Create;
Run Code Online (Sandbox Code Playgroud)

或者使用Allocate函数,传递的大小值是大小的一百倍TObject,因为它只是分配内存,它实际上并没有划分内存并将它"赋予"对象.如果我假设c ++实例化是即时的而不是根据引擎迭代,我道歉.

delphi delphi-2007

4
推荐指数
2
解决办法
839
查看次数

实现TObjectList的排序,无需复制/粘贴代码

我有一个在节点树中排序节点的过程(VirtualTreeView)从FMM4报告中提取的所有内存泄漏都存储在类TMemoryLeakList的对象中(这些是我想要排序的列表),它们存储在列表列表中称为TGroupedMemoryLeakList,TMLL和TGMLL都扩展了TObjectList.如果我想保持能够在升序和降序排序之间进行选择并在四种不同数据类型之一之间进行选择的功能,我必须'实现八种不同的比较方法(4种排序类型*2种排序方向)我转到主排序方法,因为我的TMLL列表扩展了TObjectList.主要的排序方法看起来像这样.

从GUI组合框中获取字段fSortType和fSortDirection的值.这八个通用比较函数中的一个看起来像这样.剩下的七个是这一个的复制/粘贴变体.

是否有任何合理的方法来重构大量的复制粘贴代码并仍保留选择特定排序类型和方向的功能?

delphi sorting refactoring

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

这怎么是内存泄漏?

FastMM报告此行是内存泄漏的来源:

StrClassName := MidStr (curLine, length(START_OF_CLASSNAME)+1, length(curline)+1)
Run Code Online (Sandbox Code Playgroud)

这是怎么回事与CopyMidStr?这只是一个Delphi 2007编译器的bug,还是以后的版本也有这个问题?这里是链接到FastMM报告的副本,以及我的应用程序是如何显示这些类型的报告.看,为了显示VirtualTreeView我需要新数据类型的节点.我称之为TMemoryLeak.当我解析报告时,我给出了TMemoryLeak一个类名,callstack,它的大小等等.但是当应用程序关闭,FastMM启动时,上面的复制行似乎泄漏了内存.我释放callstack的大小,整个对象,但ClassName字段是一个字符串总是韭菜内存.

更新(来自评论)

这是声明和构造函数以及解构器.至于生命周期 - 一旦对象用于显示节点树,就会调用对象的解构器,之后它们就会被淘汰,并且被释放(我希望).

TMemoryLeak = class(TObject)
    private
      fID              :integer;
      fSize            :integer;
      fTotalSize       :integer;
      fCallStack       :TStringList;
      fClassName       :string;
      fRepeatedInstance:integer;


    public
      property ID               :integer      read fID                write fID;
      property TotalSize        :Integer      read fTotalSize         write fTotalSize;
      property Size             :integer      read fSize              write fSize;
      property CallStack        :TStringList  read fCallStack         write fCallStack;
      property ClassName        :string       read fClassName         write fClassName;
      property RepeatedInstance :integer      read …
Run Code Online (Sandbox Code Playgroud)

delphi memory-leaks fastmm

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

尝试删除目录时Git Bash-权限被拒绝.Git bash有类似sudo的命令吗?

我已经创建了一个bitbucket存储库并开始使用本教程:https: //confluence.atlassian.com/display/BITBUCKET/Clone+Your+Git+Repo+++Add+Source+Files

一切顺利,直到我克隆了空的存储库,创建了一个名为bb101repo的文件夹,就像教程要求的那样.然后,本教程继续解释该文件夹的名称不够精确以及我们应该如何使用不同的名称创建一个新文件夹.

因此,当我尝试使用命令rm -irf"bb101repo /"删除文件夹时,终端显示以下消息:"rm:无法删除目录'bb101repo':权限被拒绝.

有办法去sudo吗?

admin bitbucket git-bash

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

加载前刷新标签标题?

我有一段代码:

setEnableControls(false);
lblLoading.Caption:='Loading tree contents, please wait.';
someBigLoading(); 
setEnableControls(true);
lblLoading.Caption:='';
Run Code Online (Sandbox Code Playgroud)

问题是,标签的标题文本在"大加载"完成之后才会刷新.有没有办法让程序在消息队列中处理消息,然后进入下一个命令?

delphi

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

是否更喜欢对GUI元素进行排序而不是对数据进行排序并让GUI显示已排序的数据?

关于排序的相关问题可能与回答这个问题有关.我已经意识到VirtualTreeView提供了它自己的排序方法,但它似乎比仅仅对数据本身进行排序并让GUI刷新更慢.

操纵GUI元素而不是它们显示的数据是否是"好习惯",为什么?

delphi sorting user-interface virtualtreeview

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

为什么FASTMM的完整调试模式要求fulldebugmode.dll与appllcation的.exe文件位于同一个文件夹中?

当我将DLL复制到.exe所在的同一文件夹时,它可以工作.但是有一种(某种)解决方法:当我打开调试器选项并将DLL的原始路径添加到环境块时,它在我的IDE中启动项目时起作用,但是当它运行时它不起作用我在资源管理器中启动project.exe文件.这不是一个真正的问题,我只想知道这些文件之间的关系.

delphi dll

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

使用changeYear选项时,我可以将jQuery日期选择器显示更多年份吗?

我在一个应用程序中使用jQuery datepicker,除其他外,它将用于插入和更新员工的出生日期.我觉得必须多次点击才能进入70年代和80年代,很多员工都出生在这几十年里很麻烦.有没有办法以更少的点击次数访问这些"更多"年份?这就是我的日期选择器的样子

$("#DateOpened").datepicker({
    dateFormat: "mm/dd/yy",
    maxDate: "+0D",
    showAnim: 'slide',
    changeMonth: true,
    changeYear: true,
    'setDate': new Date(),
    onClose: function (selectedDate) {
        $("#DateClosed").datepicker("option", "minDate", selectedDate);
    }
});
Run Code Online (Sandbox Code Playgroud)

jquery-ui jquery-ui-datepicker

0
推荐指数
1
解决办法
2173
查看次数