1. 24

It would be nice to have a tag for performance and optimisation related posts, because at the moment it’s occasionally quite difficult to tag them well. Sometimes the C/C++/assembly tags fit, but that’s not really what the posts are about.

Some examples from the first page of my submission history:

https://lobste.rs/s/mlxfzm/writing_really_really_fast_json_parser

https://lobste.rs/s/kdfx7v/shadow_mapping_summary_part_1

Those stories have almost no code, so tagging them with specific language tags doesn’t seem right.

https://lobste.rs/s/uhr6jw/how_write_maths_library_2016

https://lobste.rs/s/rfzloq/lz_codec_designed_for_sse_decompression

and those stories are about using SIMD instructions, which are not really specific to any language. I tagged them assembly because the SSE intrinsics are pretty much C syntax for assembly, but again that doesn’t seem quite right.

  1.  

  2. 11
    1. 6

      Added

      1. 5

        If anything it should be performance. Optimization risks being conflated with its mathematical/compsci connotation.

        1. 4

          This also avoids making a judgment call on how to spell optimi[sz]ation.

          1. 1

            optimißation obvs

          2. 2

            I’m a grad student studying optimization… and I clicked on this link to see if it was related. I vote for ‘performance’

          3. 2

            Why is this different enough from scaling that it needs a new tag?

            1. 4

              I would argue that scaling is a subset of performance, topic-wise. it’s also a word that seems narrowly associated with the operation of large websites, which is nifty but unlikely to be impactful to the average programmer, whereas basic performance knowledge and skills can benefit almost everyone, sooner or later.

              1. 3

                Because refining the inner loop of a JSON parser, or fiddling with the output of a C++ compiler to fit an FPS into 96K, or about vectorizing math code isn’t necessarily the same as putting a cache in front of a web server, indexing a database, or sharding data. Some times code that scales (or is thought to scale) in a distributed or web services sense has been de-optimised in a strictly local sense (microservices are a good example of this).

                They’re separate, though related, concerns. Some times you can scale by increasing the performance of a program, some times you scale by throwing more hardware at the load and putting said iron behind a load balancer. I would not consider upgrading RAM on a computer a software optimization.

              2. 1

                +1. Mechanical sympathy, algorithmic performance and tuning are some of my favorite material on here and I’d love to see a tag for them.