Stories
Slash Boxes
Comments

Dev.SN ♥ developers

posted by LaminatorX on Saturday March 15 2014, @11:28PM   Printer-friendly
from the premature-optimization-is-the-root-of-all-evil dept.

Subsentient writes:

"I've been writing C for quite some time, but I never followed good conventions I'm afraid, and I never payed much attention to the optimization tricks of the higher C programmers. Sure, I use const when I can, I use the pointer methods for manual string copying, I even use register for all the good that does with modern compilers, but now, I'm trying to write a C-string handling library for personal use, but I need speed, and I really don't want to use inline ASM. So, I am wondering, what would other Soylenters do to write efficient, pure, standards-compliant C?"

 
This discussion has been archived. No new comments can be posted.
Display Options Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: -1, Troll) by Ethanol-fueled on Saturday March 15 2014, @11:56PM

    by Ethanol-fueled (2792) on Saturday March 15 2014, @11:56PM (#17069) Journal

    We call those "const" in my hood, nigga.

    Starting Score:    1  point
    Moderation   -2  
       Troll=1, Overrated=1, Total=2
    Extra 'Troll' Modifier   0  

    Total Score:   -1  
  • (Score: 3, Informative) by ls671 on Sunday March 16 2014, @12:33AM

    by ls671 (891) on Sunday March 16 2014, @12:33AM (#17075) Homepage

    "const" don't have the copy on write feature. You can't even write them. So sorry, we are not talking about the same thing..

    --
    Everything I write is lies, including this sentence.
  • (Score: 1) by sjames on Sunday March 16 2014, @02:32AM

    by sjames (2882) on Sunday March 16 2014, @02:32AM (#17106)

    Not the same thing at all. Const can't be assigned at all (other than the initial assignment). Thi is entiorely different. There is a string pool containing one and only one copy of every string assigned anywhere. If you have char *a="hello " and char *b="there" and char *c = "hello there!", there will be 3 strings stored. If you concatenate a and b assigned to char *d, d will point to the same instance of "hello there" as c does (and it's reference count will be incremented).

    Unlike a const, you can then do d = "Never Mind".

    • (Score: 0) by Anonymous Coward on Sunday March 16 2014, @11:32AM

      by Anonymous Coward on Sunday March 16 2014, @11:32AM (#17191)

      You mean whenever I change a string in Java, the JVM runs through ALL my strings in memory to make sure I don't have a duplicate string already? and there's no opting out??

      Yikes, that sounds like a huge waste of CPU cycles. I'll happily trade memory to get that performance back, thanks.

      • (Score: 1) by sjames on Sunday March 16 2014, @04:44PM

        by sjames (2882) on Sunday March 16 2014, @04:44PM (#17267)

        It's done with hashes.