September 02, 2021

On Thursday, 2 September 2021 at 11:05:44 UTC, Patrick Schluter wrote:

>

File system access is significantly slower on Windows because of case insensitivity, Unicode and more metadata accesses per file. This overhead is far from being negligible when accessing a lot of small files (on NTFS afaicr files < than cluster size are stored inside the special directory structure requiring special operation to extract and other such oddities).

It's definitely more than case insensitivity. Try it on Linux:

dd if=/dev/zero of=casei.img bs=1G count=50
mkfs -t ext4 -O casefold casei.img
mkdir casei
mount -o loop casei.img casei

That creates a 50G case-insensitive ext4 filesystem and then mounts it into a directory that you can build dmd in, etc.

September 02, 2021

On Thursday, 2 September 2021 at 11:05:44 UTC, Patrick Schluter wrote:

> >

On windows the same project takes 1.8 sec to fully rebuild, windows likes to make things slow.. i wonder if that's because of the linker, i don't know how to check that

File system access is significantly slower on Windows because of case insensitivity, Unicode and more metadata accesses per file. This overhead is far from being negligible when accessing a lot of small files (on NTFS afaicr files < than cluster size are stored inside the special directory structure requiring special operation to extract and other such oddities).

While true, this doesn't even remotely explain the difference.

Windows filesystem performance are a disaster. Don't take it from me, take it from the windows team itself, for instance: https://www.youtube.com/watch?v=yQEgeoabHNo

In that presentation, the engineer explain the challenge of using a git monorepo at microsoft, and process creation performance as well as file system performance where both major issue vs linux, and to a lesser extent OSX.

September 02, 2021

On Tuesday, 31 August 2021 at 15:09:11 UTC, Steven Schveighoffer wrote:

>

On 8/30/21 1:15 PM, Ali Çehreli wrote:

>

[...]

initializers sometimes can be computed at compile time. If assigned to a const or immutable variable, the compiler is smart enough to know that the item hasn't changed, and so it can go back to the static initializer for what the value actually is.

[...]

"Someone" "should" make a D cheat sheet! Like some best practices, tips n tricks to stay healthy in the D universe

September 02, 2021
On Thu, Sep 02, 2021 at 07:42:19PM +0000, Imperatorn via Digitalmars-d wrote:
> On Tuesday, 31 August 2021 at 15:09:11 UTC, Steven Schveighoffer wrote:
> > On 8/30/21 1:15 PM, Ali Çehreli wrote:
> > > [...]
> > 
> > initializers *sometimes* can be computed at compile time. If assigned to a const or immutable variable, the compiler is smart enough to know that the item hasn't changed, and so it can go back to the static initializer for what the value actually is.
> > 
> > [...]
> 
> "Someone" "should" make a D cheat sheet! Like some best practices, tips n tricks to stay healthy in the D universe

Well, there's this: https://p0nce.github.io/d-idioms/

But it may be somewhat outdated now.


T

-- 
Why did the mathematician reinvent the square wheel?  Because he wanted to drive smoothly over an inverted catenary road.
1 2 3
Next ›   Last »