Re: Processing very large TEXT columns (300MB+) using C/libpq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



​In that case you must put a read lock on the string that covers the loop. If you're in a multi-threaded environment and not using locks when appropriate then all bets are off.


On Fri, Oct 20, 2017 at 12:05 PM, Geoff Winkless <pgsqladmin@xxxxxxxx> wrote:
On 20 October 2017 at 18:52, Bear Giles <bgiles@xxxxxxxxxxxxxx> wrote:
As an aside any halfway decent optimizer would realize that the results of strlen() are unchanging as long as the contents of what it's passed isn't modified. That's a common enough pattern that it should be checked.

​IME this is a myth perpetuated by bad computer science lecturers who haven't thought through the consequences of what they're saying.​ strlen() can change because of changes inside the loop but also because of also threads in the system; I've not yet seen a compiler optimise that away, and neither should it, IMO.

G


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux