Changeset 60297f56


Ignore:
Timestamp:
Dec 13, 2011 9:19:32 PM (9 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
27f0587
Parents:
c92c664
Message:
  • GeoIP: Buffer input to speed lookup by 10x
File:
1 edited

Legend:

Unmodified
Added
Removed
  • router/java/src/net/i2p/router/transport/GeoIP.java

    rc92c664 r60297f56  
    1919import java.util.concurrent.atomic.AtomicBoolean;
    2020
     21import net.i2p.I2PAppContext;
    2122import net.i2p.data.DataHelper;
    2223import net.i2p.data.Hash;
     
    4243class GeoIP {
    4344    private final Log _log;
     45    // change to test with main()
     46    //private final I2PAppContext _context;
    4447    private final RouterContext _context;
    4548    private final Map<String, String> _codeToName;
     
    5255    private int _lookupRunCount;
    5356   
     57    //public GeoIP(I2PAppContext context) {
    5458    public GeoIP(RouterContext context) {
    5559        _context = context;
     
    219223        try {
    220224            in = new FileInputStream(GeoFile);
    221             StringBuilder buf = new StringBuilder(128);
    222             while (DataHelper.readLine(in, buf) && idx < search.length) {
     225            String buf = null;
     226            BufferedReader br = new BufferedReader(new InputStreamReader(in, "ISO-8859-1"));
     227            while ((buf = br.readLine()) != null && idx < search.length) {
    223228                try {
    224229                    if (buf.charAt(0) == '#') {
    225                         buf.setLength(0);
    226230                        continue;
    227231                    }
    228                     String[] s = buf.toString().split(",");
     232                    String[] s = buf.split(",");
    229233                    long ip1 = Long.parseLong(s[0]);
    230234                    long ip2 = Long.parseLong(s[1]);
     
    243247                } catch (NumberFormatException nfe) {
    244248                }
    245                 buf.setLength(0);
    246249            }
    247250        } catch (IOException ioe) {
     
    263266     */
    264267    private void updateOurCountry() {
     268        /**** comment out to test with main() */
    265269        String oldCountry = _context.router().getConfigSetting(PROP_IP_COUNTRY);
    266270        Hash ourHash = _context.routerHash();
     
    273277            _context.router().saveConfig();
    274278        }
     279        /****/
    275280    }
    276281
     
    357362        for (int i = 0; i < tests.length; i++)
    358363            g.add(tests[i]);
     364        long start = System.currentTimeMillis();
    359365        g.blockingLookup();
     366        System.out.println("Lookup took " + (System.currentTimeMillis() - start));
    360367        for (int i = 0; i < tests.length; i++)
    361368            System.out.println(tests[i] + " : " + g.get(tests[i]));
Note: See TracChangeset for help on using the changeset viewer.