Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (731)
Games in Android Showcase (217)
games submitted by our members
Games in WIP (799)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Reflection speedup: hashed Fields  (Read 2225 times)
0 Members and 1 Guest are viewing this topic.
Offline Hansdampf

Senior Devvie


Projects: 3


too offending?


« Posted 2009-09-09 12:48:40 »

This tiny class sped up my reflection stuff by a factor of 3 (minimum!).
The idea behind: avoid the costly .getField() by hashing.

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
import java.lang.reflect.Field;
import java.util.HashMap;

public class FieldHash extends HashMap<Class, HashMap<String, Field>> {
   public Field getField(Class c, String fieldname) throws SecurityException, NoSuchFieldException {
      HashMap<String, Field> h = get(c);
      if (h == null) {
         put(c, h = new HashMap());
      }
      Field f = h.get(fieldname);
      if (f == null) {
         h.put(fieldname, f = c.getField(fieldname));
      }
      return f;
   }
}


1  
 fieldhash.getField(myclass,"myvariable");   

is about 25x  Cheesy faster than
1  
 myclass.getField("myvariable");


lots of sillystupid games: http://www.emaggame.com
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 
Archive (337 views)
2017-04-27 17:45:51

buddyBro (536 views)
2017-04-05 03:38:00

CopyableCougar4 (979 views)
2017-03-24 15:39:42

theagentd (1016 views)
2017-03-24 15:32:08

Rule (994 views)
2017-03-19 12:43:22

Rule (976 views)
2017-03-19 12:42:17

Rule (973 views)
2017-03-19 12:36:21

theagentd (1073 views)
2017-03-16 05:07:07

theagentd (992 views)
2017-03-15 22:37:06

theagentd (762 views)
2017-03-15 22:32:18
List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05

SF/X Libraries
by SkyAphid
2017-03-02 06:38:56

SF/X Libraries
by SkyAphid
2017-03-02 06:38:32

SF/X Libraries
by SkyAphid
2017-03-02 06:38:05

SF/X Libraries
by SkyAphid
2017-03-02 06:37:51
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!