加载中…
个人资料
红鱼儿
红鱼儿
  • 博客等级:
  • 博客积分:0
  • 博客访问:882,058
  • 关注人气:211
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
评论
加载中…
留言
加载中…
访客
加载中…
好友
加载中…
博文
分类: kbmMW
这段时间测试kbmMW 5.3,免不了查看官方新闻组,提出遇到的问题,还好,得到了作者的积极回复并修正问题。

在这一过程中,发现有人遇到关于文件服务卡死kbmMW服务器的问题,让人感觉做开发真心不易,特此记录:

问题:
新闻组标题:kbmMWServer is frozen and doesn't answer on new requests. It's high urgency problem for me and I can repeat It on demo application
大意是:kbmMWServer死了,不再响应,这个问题可以用demo重现。同时作者在邮件中详细描述了问题场景及对代码的分析:
Server死掉,是在执行TkbmMW.RequestService方法中的这一行:
FOngoingRequests.Value[TkbmNativeUInt(Result)]:=true;
这一行调用的SetValue时,在执行到方法function TkbmMWDynamicLockFreeHashArray.Grow:boolean的FResizeLock.BeginWrite这一行出的问题。作者很快确认了问题,并给出了修正代码:
 Open kbmMWServer.pas, locate the method ReturnServiceInstance. 
Change the line with FOngoingRequests to: FServiceDefinition.Server.FOngoingRequests.Remove(TkbmNativeUInt(
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi10.2
如果您使用Delphi开发App,就会遇到:Android和iOS的编译实现是太慢了,尤其是debug。这个小技巧使得编译Debug能快不少。

可能你已经知道了这个方法,如果这样设置,那一定为之开心。

您认为Release版本比Debug版本编译需要更长时间,因为它必须执行一堆代码优化阶段,告诉你,实际情况与此相反,在Debug模式下构建适用于iOS或Android的我的应用程序大概需要7.5 分钟,在Release模式下构建相同的应用程序不到1分钟。(当然,与建立相同的Windows应用程序相比,这还需要不到3秒的时间)。

编译Debug构建的大部分时间花在创建调试信息中,所以这是可以获得收益的地方。对Project Options进行一个更改可以使您的Debug构建更快,几乎和release一样快。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi
无论作为开发者还是数据库管理员,经常遇到的就安装数据库,那动不动就几百M,几个G的数据库安装,实在是让头大的事情,安装过程缓慢、耗时。现在向大家推荐我用过的最好的绿色数据库集合:HaoSql
这是他的网址:www.haosql.com

下面内容转自他的网站:

HaoSQL,好用的SQL。
本程序的目的只有一个:将数据库的安装过程简单化、傻瓜化。
免安装绿色版,大小只有10M左右,解压即可,纯绿色的;启动只需一键。
带控制面板,带SQL管理工具。支持服务非服务两种模式启动。
支持数据库:MongoDB、MySQL、PostgreSQL、MSSQL2008、MSSQL2000、Firebird、MariaDB
各数据库默认用户及密码:
数据库  默认用户  密码  说明
 MySQL  root  haosql  
 MariaDB  root
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

delphi

分类: kbmMW
更新内容很少:
 // 7.77.30 Oct 14 2017
//        Fixed compilation in D2009/D2010.
//        Fixed ftString PopulateField and CompareFields bug affecting NextGen compilers (locate/sort).
//        Fixed order of destruction of FRowOrderIndex.

可别看内容少,但解决我遇到的两个重要的问题,一个是针对ftString建立的索引并排序,在Android上排序结果是错误的。现在正常了。
这是错误的结果:

这是正确的
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

delphi

分类: Delphi
好多朋友从我要这个,拿去用吧,别问我引用什么单元

// 取得当前进程占用内存
function CurrentMemoryUsage: Cardinal;
var
  pmc: TProcessMemoryCounters;
begin
  pmc.cb := SizeOf(pmc);
  if GetProcessMemoryInfo(GetCurrentProcess, @pmc, SizeOf(pmc)) then
    result := pmc.WorkingSetSize
  else
    RaiseLastOSError;
end;

// 取得当前进程的线程数
function GetProcessThreadCount: integer;
var
  SnapProcHandle: THandle;
  ThreadEntry: TThreadEntry32;
  Next: boolean;
begin
  result := 0;
  SnapProcHandle := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
  if SnapProcHandle <> THandle(-1) then
  begin
    ThreadEntry.dwSize := SizeOf(T
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: kbmMW
现在版本,文件客户端没有重试选择项,当服务端文件资源忙时(其他客户端读写访问时默认会锁定10秒),在下版本中,将加入客户端的重试支持。此外,还将增加对文件的校验功能,为客户端及服务端提供SameFile及LocalCheckSum方法,让服务器返回一个校验文件,客户端来判断本地文件与服务端文件是否相机,这将是并发运行的。

在新闻组里看到这些内容,正是我已经实现并使用的,上段时间给作者发邮件问是否能官方支持,没想到作者真当回事了。好人呐!没理由不支持kbmMW!
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2017-10-15 12:29)
标签:

delphi

分类: Delphi
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

delphi

分类: kbmMW
kbmMW的下一个版本将进一步改进TkbmMWScheduler。调度程序支持添加作业以运行给定相当广泛的时间条件。它还支持在后台运行作业,完成后,以安全和一致的方式处理GUI更新。也就是说,如果您想在后台并行运行多个作业,并且只有当所有后台子作业完成时才调用该作业。

kbmMW将允许您在下一个版本中以简单的方式实现这个操作。下面是例子:

procedure TForm1.Button10Click(Sender: TObject);
var
  d1:int64;
begin
  d1:=TkbmMWTiming.GetTimeUS;
  Scheduler.Run([
   procedure(const AScheduledEvent:IkbmMWScheduledEvent)
   var
      i,n:integer;
      d:int64;
   begin
        AScheduledEvent.Data:=0;
        n:=500;
        d:=TkbmMWTiming.GetTimeUS;
     
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2017-10-14 17:17)
标签:

delphi

分类: kbmMW
越来越多的朋友终于知道kbmMW的强大,都想试试,刚好网上也泄露了4.93版本(我现在就用这个版本做生产 !),但因为安装时要配置使用的组件,所以有很多朋友问我,关于安装kbmMW的问题,其实xalion早已经写了,很详细,可以去看:KbmMW安装,相信看完,都能轻松搞定kbmMW的安装。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: kbmMW
  function kbmMWGenerateGUID:string;
  function kbmMWGenerateShortGUID:string;
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有