The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,402 other followers

Archive for August 9th, 2018

Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing Code – Alois Kraus

Posted by jpluimers on 2018/08/09

[WayBack] Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing Code – Alois Kraus reports that the PAUSE instruction on Intel Skylake architecture takes an order of magnitude longer than on previous architectures.

This impacts spinlock code in .NET 4.x and .NET Core 2, and likely impacts other spinlock code as well. The .NET core fix gets back-ported to .NET 4.x.

Since Delphi XE, the Delphi RTL code has borrowed ideas from .NET implementing this kind of code, so I filed [WayBack] QualityCentral: 144063 PAUSE instruction on Intel Skylake takes order of magnitude longer: important for SpinWait/SpinLock code (because Google can index it).

It is no coincidence that a Senior Scaleability Engineer at Booking.com mentioned it on his G+ stream ([WayBack] The “Pause” instruction changed timing dramatically in Skylake. Spinlock implementation based on pause will need adjustments. – Kristian Köhntopp – Google+) as changes like this can heavily impact server systems.

–jeroen

via: [WayBack] The “Pause” instruction changed timing dramatically in Skylake. Spinlock implementation based on pause will need adjustments.I hope a fix for this will be back-ported for many Delphi versions. – Jeroen Wiert Pluimers – Google+

Posted in .NET, .NET 4.0, Delphi, Development, Software Development | Leave a Comment »

Reminder to self: write up which refactoring options might work under what circumstances

Posted by jpluimers on 2018/08/09

Reminder to self to elaborate on:

–jeroen

Posted in Delphi, Development, Software Development | 2 Comments »

Delphi 2007 – when you lost your Borland.*.Targets file during a Windows upgrade

Posted by jpluimers on 2018/08/09

When upgrading Windows, it will create a fully new %windir% for you.

Any files an application installed files in them will be gone, and appear in a %HomeDrive%\Windows.old

If you’ve deleted that directory because you thought all your applications worked, or the Windows 10 upgrade automagically deleted the Windows.old directory by itself after some grace period, then you might be in trouble.

One of those applications is Delphi 2007. I wrote about a different issue on x64 Windows on that product before: Delphi on Windows x64: solution when project compiles fine under IDE, but not using MSBuild.

Basically it puts these files in %windir%\Microsoft.NET\Framework\v2.0.50727:

  • Borland.Common.Targets
  • Borland.Cpp.Targets
  • Borland.Delphi.Targets
  • Borland.Group.Targets

Those will be gone if you deleted the Windows.old directory.

If you are lucky, the files are also in this directory to copy back to %windir%\Microsoft.NET\Framework\v2.0.50727 and %windir%\Microsoft.NET\Framework64\v2.0.50727:

C:\ProgramData\{B59CE2E6-B15A-4F23-BD0E-72BF2ADDC3C7}\core\7EFD2DA3\6C948720

And if you’re not, you can find them here too: https://gist.github.com/anonymous/ab801cd925e5e634518fd5592eb2a46e

–jeroen

via:

Read the rest of this entry »

Posted in Delphi, Delphi 2007, Development, Software Development | Leave a Comment »

 
%d bloggers like this: