URL:
  <http://gna.org/patch/?4949>

                 Summary: [Metaticket] Get rid of massive switch-cases
                 Project: Freeciv
            Submitted by: cazfi
            Submitted on: Mon 14 Jul 2014 11:17:00 AM EEST
                Category: None
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: 

    _______________________________________________________

Details:

To at least open a ticket of something I've long wanted to do...

We have a couple of switch - case constructs with a lot of cases (packet
handling has a case for each packet number, ai effect evaluation for each
effect type). While I haven't measured how much that affects our overall
performance, checking against each case in often called functions certainly
gives us some performance hit (I don't think any compiler can make major
optimizations on this - feel free to correct me).

My plan is to investigate possibilities to build function arrays, so that what
currently is an case would be array index:

switch (var) {
case 0:
  func0();
  break;
case 1:
  func1();
  break;
case 2:
  func2();
  break
...
}

-> 

funcs[var]();





    _______________________________________________________

Reply to this item at:

  <http://gna.org/patch/?4949>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/


_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to