-
Content Count
3416 -
Joined
-
Last visited
-
Days Won
113
Everything posted by Lars Fosdal
-
@Dany Marmur Partitioning is what it sounds like. Like a disk can be partitioned in multiple file systems, a database table can be partitioned into multiple files. You can do this horizontally - divide up by rows - or vertically - divide up by columns. We use a horisontal partition scheme to split the transaction and movement data of each lot created, processed, stored, moved, and delivered in our 40+ warehouses by warehouse. That is many thousands of rows per day per site, and regulation says the data must be stored for certain period of time past the article expiration date. It is used for tracking purposes if a bad batch should reach the market. We would know who got it, where it has been, where it was made, and from which tanks the raw material came. Another similar database tracks who delivered to those tanks, but that is a much smaller amount of data. To oversimplify - you can use a partition key to decide how to divide the records in a table between multiple "physical" files and hence multiple indexes. If a query includes the partition key, the result set would come from one (or more) of the table partitions - giving the secondary keys a much smaller index to deal with. Partitioning gives you query performance if the partition is well designed. If the result set spans multiple partitions - each of the partition queries can be run in parallel since there is no overlap in the data, and the result set will be a union of those queries. The expression index doesn't really lack anything - partitioning is purely for dealing with massively large tables. For examples of the principles of partitioning - take a look at https://www.sqlshack.com/database-table-partitioning-sql-server/
-
Well, we have a database table that is partitioned on a key - simply because the amount of data is so staggeringly huge. Multi segment indexes makes sense if the table is really large, or the index is very complex.
-
Is there a QP for this? I'd be happy to vote it up.
-
@FredS My customers also must deal with the bugs that me and the team creates, and we are dependent on them to provide a reproducible bug for us to fix the problem. Complex software will be complex.
-
Ah, ok - I never really used it that way. That behaviour is consistent with what I see. So, [dot] used to double as [enter] before?
-
Install flag to say it's for ALL USERS?
Lars Fosdal replied to David Schwartz's topic in Delphi IDE and APIs
Working around AD policies is mission impossible. Depending on the rules, the AD policies may decide to nix your changes to the registry and/or file system. But - installing components to a public folder / public registry key by default would be a nice start. @David Schwartz - I know the pain you are in. I used to depend on LAPS to get stuff done, and that doesn't really help for installation of components. Luckily we managed to broker a deal where us devs got local admin rights, in exchange for treating the internet with extreme paranoia. -
Since I don't know the intimate details of exactly how the LSP does the analysis, I can't really be that harsh in judgement.
-
True, but there is almost as many code variations as there are developers. There still may be stuff out there that doesn't work.
-
It seems likely that there are certain code patterns preventing this. I did some random spot checks in our code, and typing partial variable name[ctrl+space] or variable[dot] produces a selection very quickly.
-
Why is this code not thread safe (Delphi 7)
Lars Fosdal replied to Yaron's topic in Algorithms, Data Structures and Class Design
I always capture the current brush/pen handles, set my own, use them, then restore them to what they were. Oldschool, I guess. -
I have a Programs Group containing the projects that I work with on a daily basis. In versions prior to 10.x - sometimes before committing a possibly breaking code change, I would do a build all on that group. There was an older version that also would run out of memory, but eventually that got fixed, but now it seems that error is back. I hadn't really used this for some time, since the build server does it faster than I can, but I was going to benchmark 10.4.2 vs 10.4.1. (Note that the time axis on the charts below are not comparable). 10.4.1 churns through the first 8 projects before it stops on an out of memory error, consuming 3.25Gb. 10.4.2 crashes out hard (IDE goes *poof*) at peak 3.42Gb I wonder what logic it is that governs when the IDE should release generated code or not? Each arrow represents when it starts compiling a project in the project group. Large VCL app, Moderate VCL app, Small VCL app, Small VCL app, Moderate VCL app, Small VCL wrapper around service code, Service without GUI, Small VCL wrapper around service code (OOM). If it had released every time, we would not have this problem. On the bright side, 10.4.2 is a slightly faster compiler. Complaint 1: The IDE should not run out of memory when compiling a project group. Complaint 2: The IDE should - if it runs out - handle it gracefully and not crash out.
-
10.4.2 IDE Compilation Memory leak
Lars Fosdal replied to Lars Fosdal's topic in Delphi IDE and APIs
I commented on this one. https://quality.embarcadero.com/browse/RSP-32768 https://quality.embarcadero.com/browse/RSP-32792 and 93 are duplicates of that one, it seems. -
10.4.2 IDE Compilation Memory leak
Lars Fosdal replied to Lars Fosdal's topic in Delphi IDE and APIs
The IDE is a 32-bit app using the large memory "hack" that allows it to use 3Gb instead of two. See https://cc.embarcadero.com/Item/24309 for an example. @emailx45 The ISLC application you suggest is irrelevant. My laptop has 32 Gb. -
@Mike Torrettinni 10.4.2 is a lot better than 10.4.1 in many respects. These are corner cases, and I expect there will be hotfixes. My guess is that 10.5.0 also will have issues that needs to be hotfixed - simply because exposing the IDE and compiler to real world code will uncover things that were not caught in the testing.
-
I do too, and I don't... There were those that abused that usability to spam threads, simply because it was so easy to do so. But yeah, the old newsgroups were underrated and should have survived and evolved.
-
@FredS Creating a new VCL project, adding your unit, and without saving the files - hovering over FormKeyDown in the implementation section - the IDE locks up. The LSP does not show any particular activity: The IDE seems to be running in a very tight loop in a single thread doing XML processing? Callstack: 0, msxml6.dll!DllGetActivationFactory+0x36a1a 1, 0x6d6a9a500589a9b8 2, 0xffffffff00000000 3, 0x6d6a9a8a00641f44 4, 0x6d6a9a500588c0c8 5, 0x300000000 6, msxml6.dll!DllGetActivationFactory+0x36a1a (No unwind info) 7, msxml6.dll+0x79a8a (No unwind info) 8, msxml6.dll+0x791cb (No unwind info) 9, msxml6.dll+0x6002b (No unwind info) 10, msxml6.dll+0x3f4c0 (No unwind info) 11, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 12, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 13, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 14, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 15, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 16, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 17, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 18, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 19, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 20, xmlrtl270.bpl!XmlXmldocTXMLNode_Release$qqsv+0xe (No unwind info) 21, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 22, rtl270.bpl!SystemClassesTInterfaceList$bdtr$qqrv+0x13 (No unwind info) 23, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 24, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 25, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 26, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 27, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 28, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 29, xmlrtl270.bpl!XmlXmldocTXMLNode_Release$qqsv+0xe (No unwind info) 30, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 31, rtl270.bpl!SystemClassesTInterfaceList$bdtr$qqrv+0x13 (No unwind info) 32, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 33, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 34, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 35, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 36, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 37, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 38, xmlrtl270.bpl!XmlXmldocTXMLNode_Release$qqsv+0xe (No unwind info) 39, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 40, xmlrtl270.bpl!XmlXmldocTXMLDocument$bdtr$qqrv+0x6f (No unwind info) 41, xmlrtl270.bpl!XmlXmldocTXMLDocument_Release$qqsv+0x33 (No unwind info) 42, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 43, IDELSP270.bpl!BaselspserverTLSPServerLSPServerCharEncoding$qqrp14SystemTObjectx20SystemUnicodeStringp22SystemClassesTStream+0xbd8 (No unwind info) 44, vcl270.bpl!VclFormsTApplicationIdle$qqrrx6tagMSG+0x13b (No unwind info) 45, vcl270.bpl!VclFormsTApplicationHandleMessage$qqrv+0x1c (No unwind info) 46, bds.exe!_dbk_fcall_wrapper+0x1234ad (No unwind info) 47, kernel32.dll!BaseThreadInitThunk+0x19 (No unwind info) 48, ntdll.dll!RtlGetAppContainerNamedObjectPath+0xe4 (No unwind info) 49, ntdll.dll!RtlGetAppContainerNamedObjectPath+0xb4 (No unwind info)
-
Open IDE, and select File | New | Windows VCL Application - Delphi Update: Problem went away when deleting an expired license. Reported as: https://quality.embarcadero.com/browse/RSP-33104
-
dpm Blogged: DPM Package Manager Progress
Lars Fosdal replied to Vincent Parrett's topic in Tips / Blogs / Tutorials / Videos
I wonder though - if it would be accepted as an IDE addon in GetIt 😛 -
Does a Clean and Build help? If not, you should create a QP issue.
-
Please note that we started with just a single sub-forum for the C++Builder guys because we had no idea how many there are and how many questions there would be. We can divide up in more subforums if the usage dictates it.
-
/off-topic, but 10.3 and prior versions used to flicker like hell when AD pushed its policy settings. Fortunately, this has improved with the later versions.
-
That is where they included it, since GetIt can update components between IDE releases.
-
Compactable version of Quick report for Rad studio 10.2 C++ builder for VCL project
Lars Fosdal replied to maheshbabu's topic in Delphi Third-Party
Repeating the same question doesn't really help. Please don't do that. Since you did not specify the nature of your issue, it is hard for people to answer. https://www.quickreport.co.uk/ carries the latest versions of QuickReports for the various versions of Delphi and C++Builder. -
Quite a bit can be found in the wayback machine. I agree, though. It was a strange thing to do. I guess they are really trying hard to shave off costs.
-
spinlock primitives
Lars Fosdal replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
https://developer.arm.com/documentation/dui0473/m/arm-and-thumb-instructions/yield It was added in V6.