Dict.py 9.04 KB
Newer Older
1 2 3 4
from pybench import Test

class DictCreation(Test):

5
    version = 2.0
6
    operations = 5*(5 + 5)
7
    rounds = 80000
8 9 10

    def test(self):

11
        for i in range(self.rounds):
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

            d1 = {}
            d2 = {}
            d3 = {}
            d4 = {}
            d5 = {}

            d1 = {1:2,3:4,5:6}
            d2 = {2:3,4:5,6:7}
            d3 = {3:4,5:6,7:8}
            d4 = {4:5,6:7,8:9}
            d5 = {6:7,8:9,10:11}

            d1 = {}
            d2 = {}
            d3 = {}
            d4 = {}
            d5 = {}

            d1 = {1:2,3:4,5:6}
            d2 = {2:3,4:5,6:7}
            d3 = {3:4,5:6,7:8}
            d4 = {4:5,6:7,8:9}
            d5 = {6:7,8:9,10:11}

            d1 = {}
            d2 = {}
            d3 = {}
            d4 = {}
            d5 = {}

            d1 = {1:2,3:4,5:6}
            d2 = {2:3,4:5,6:7}
            d3 = {3:4,5:6,7:8}
            d4 = {4:5,6:7,8:9}
            d5 = {6:7,8:9,10:11}

            d1 = {}
            d2 = {}
            d3 = {}
            d4 = {}
            d5 = {}

            d1 = {1:2,3:4,5:6}
            d2 = {2:3,4:5,6:7}
            d3 = {3:4,5:6,7:8}
            d4 = {4:5,6:7,8:9}
            d5 = {6:7,8:9,10:11}

            d1 = {}
            d2 = {}
            d3 = {}
            d4 = {}
            d5 = {}

            d1 = {1:2,3:4,5:6}
            d2 = {2:3,4:5,6:7}
            d3 = {3:4,5:6,7:8}
            d4 = {4:5,6:7,8:9}
            d5 = {6:7,8:9,10:11}

    def calibrate(self):

75
        for i in range(self.rounds):
76 77 78 79
            pass

class DictWithStringKeys(Test):

80
    version = 2.0
81 82 83 84 85 86 87
    operations = 5*(6 + 6)
    rounds = 200000

    def test(self):

        d = {}

88
        for i in range(self.rounds):
89 90 91 92 93 94 95

            d['abc'] = 1
            d['def'] = 2
            d['ghi'] = 3
            d['jkl'] = 4
            d['mno'] = 5
            d['pqr'] = 6
96

97 98 99 100 101 102
            d['abc']
            d['def']
            d['ghi']
            d['jkl']
            d['mno']
            d['pqr']
103

104 105 106 107 108 109
            d['abc'] = 1
            d['def'] = 2
            d['ghi'] = 3
            d['jkl'] = 4
            d['mno'] = 5
            d['pqr'] = 6
110

111 112 113 114 115 116
            d['abc']
            d['def']
            d['ghi']
            d['jkl']
            d['mno']
            d['pqr']
117

118 119 120 121 122 123
            d['abc'] = 1
            d['def'] = 2
            d['ghi'] = 3
            d['jkl'] = 4
            d['mno'] = 5
            d['pqr'] = 6
124

125 126 127 128 129 130
            d['abc']
            d['def']
            d['ghi']
            d['jkl']
            d['mno']
            d['pqr']
131

132 133 134 135 136 137
            d['abc'] = 1
            d['def'] = 2
            d['ghi'] = 3
            d['jkl'] = 4
            d['mno'] = 5
            d['pqr'] = 6
138

139 140 141 142 143 144
            d['abc']
            d['def']
            d['ghi']
            d['jkl']
            d['mno']
            d['pqr']
145

146 147 148 149 150 151
            d['abc'] = 1
            d['def'] = 2
            d['ghi'] = 3
            d['jkl'] = 4
            d['mno'] = 5
            d['pqr'] = 6
152

153 154 155 156 157 158
            d['abc']
            d['def']
            d['ghi']
            d['jkl']
            d['mno']
            d['pqr']
159

160 161 162 163
    def calibrate(self):

        d = {}

164
        for i in range(self.rounds):
165 166 167 168
            pass

class DictWithFloatKeys(Test):

169
    version = 2.0
170
    operations = 5*(6 + 6)
171
    rounds = 150000
172 173 174 175 176

    def test(self):

        d = {}

177
        for i in range(self.rounds):
178 179 180 181 182 183 184

            d[1.234] = 1
            d[2.345] = 2
            d[3.456] = 3
            d[4.567] = 4
            d[5.678] = 5
            d[6.789] = 6
185

186 187 188 189 190 191
            d[1.234]
            d[2.345]
            d[3.456]
            d[4.567]
            d[5.678]
            d[6.789]
192

193 194 195 196 197 198
            d[1.234] = 1
            d[2.345] = 2
            d[3.456] = 3
            d[4.567] = 4
            d[5.678] = 5
            d[6.789] = 6
199

200 201 202 203 204 205
            d[1.234]
            d[2.345]
            d[3.456]
            d[4.567]
            d[5.678]
            d[6.789]
206

207 208 209 210 211 212
            d[1.234] = 1
            d[2.345] = 2
            d[3.456] = 3
            d[4.567] = 4
            d[5.678] = 5
            d[6.789] = 6
213

214 215 216 217 218 219
            d[1.234]
            d[2.345]
            d[3.456]
            d[4.567]
            d[5.678]
            d[6.789]
220

221 222 223 224 225 226
            d[1.234] = 1
            d[2.345] = 2
            d[3.456] = 3
            d[4.567] = 4
            d[5.678] = 5
            d[6.789] = 6
227

228 229 230 231 232 233
            d[1.234]
            d[2.345]
            d[3.456]
            d[4.567]
            d[5.678]
            d[6.789]
234

235 236 237 238 239 240
            d[1.234] = 1
            d[2.345] = 2
            d[3.456] = 3
            d[4.567] = 4
            d[5.678] = 5
            d[6.789] = 6
241

242 243 244 245 246 247
            d[1.234]
            d[2.345]
            d[3.456]
            d[4.567]
            d[5.678]
            d[6.789]
248

249 250 251 252
    def calibrate(self):

        d = {}

253
        for i in range(self.rounds):
254 255 256 257
            pass

class DictWithIntegerKeys(Test):

258
    version = 2.0
259 260 261 262 263 264 265
    operations = 5*(6 + 6)
    rounds = 200000

    def test(self):

        d = {}

266
        for i in range(self.rounds):
267 268 269 270 271 272 273

            d[1] = 1
            d[2] = 2
            d[3] = 3
            d[4] = 4
            d[5] = 5
            d[6] = 6
274

275 276 277 278 279 280
            d[1]
            d[2]
            d[3]
            d[4]
            d[5]
            d[6]
281

282 283 284 285 286 287
            d[1] = 1
            d[2] = 2
            d[3] = 3
            d[4] = 4
            d[5] = 5
            d[6] = 6
288

289 290 291 292 293 294
            d[1]
            d[2]
            d[3]
            d[4]
            d[5]
            d[6]
295

296 297 298 299 300 301
            d[1] = 1
            d[2] = 2
            d[3] = 3
            d[4] = 4
            d[5] = 5
            d[6] = 6
302

303 304 305 306 307 308
            d[1]
            d[2]
            d[3]
            d[4]
            d[5]
            d[6]
309

310 311 312 313 314 315
            d[1] = 1
            d[2] = 2
            d[3] = 3
            d[4] = 4
            d[5] = 5
            d[6] = 6
316

317 318 319 320 321 322
            d[1]
            d[2]
            d[3]
            d[4]
            d[5]
            d[6]
323

324 325 326 327 328 329
            d[1] = 1
            d[2] = 2
            d[3] = 3
            d[4] = 4
            d[5] = 5
            d[6] = 6
330

331 332 333 334 335 336
            d[1]
            d[2]
            d[3]
            d[4]
            d[5]
            d[6]
337

338 339 340 341
    def calibrate(self):

        d = {}

342
        for i in range(self.rounds):
343 344 345 346
            pass

class SimpleDictManipulation(Test):

347
    version = 2.0
348
    operations = 5*(6 + 6 + 6 + 6)
349
    rounds = 100000
350 351 352 353

    def test(self):

        d = {}
354
        has_key = lambda key: key in d
355

356
        for i in range(self.rounds):
357 358 359 360 361 362 363

            d[0] = 3
            d[1] = 4
            d[2] = 5
            d[3] = 3
            d[4] = 4
            d[5] = 5
364

365 366 367 368 369 370 371
            x = d[0]
            x = d[1]
            x = d[2]
            x = d[3]
            x = d[4]
            x = d[5]

372 373 374 375 376 377
            has_key(0)
            has_key(2)
            has_key(4)
            has_key(6)
            has_key(8)
            has_key(10)
378 379 380 381 382 383 384 385 386 387 388 389 390 391

            del d[0]
            del d[1]
            del d[2]
            del d[3]
            del d[4]
            del d[5]

            d[0] = 3
            d[1] = 4
            d[2] = 5
            d[3] = 3
            d[4] = 4
            d[5] = 5
392

393 394 395 396 397 398 399
            x = d[0]
            x = d[1]
            x = d[2]
            x = d[3]
            x = d[4]
            x = d[5]

400 401 402 403 404 405
            has_key(0)
            has_key(2)
            has_key(4)
            has_key(6)
            has_key(8)
            has_key(10)
406 407 408 409 410 411 412 413 414 415 416 417 418 419

            del d[0]
            del d[1]
            del d[2]
            del d[3]
            del d[4]
            del d[5]

            d[0] = 3
            d[1] = 4
            d[2] = 5
            d[3] = 3
            d[4] = 4
            d[5] = 5
420

421 422 423 424 425 426 427
            x = d[0]
            x = d[1]
            x = d[2]
            x = d[3]
            x = d[4]
            x = d[5]

428 429 430 431 432 433
            has_key(0)
            has_key(2)
            has_key(4)
            has_key(6)
            has_key(8)
            has_key(10)
434 435 436 437 438 439 440 441 442 443 444 445 446 447

            del d[0]
            del d[1]
            del d[2]
            del d[3]
            del d[4]
            del d[5]

            d[0] = 3
            d[1] = 4
            d[2] = 5
            d[3] = 3
            d[4] = 4
            d[5] = 5
448

449 450 451 452 453 454 455
            x = d[0]
            x = d[1]
            x = d[2]
            x = d[3]
            x = d[4]
            x = d[5]

456 457 458 459 460 461
            has_key(0)
            has_key(2)
            has_key(4)
            has_key(6)
            has_key(8)
            has_key(10)
462 463 464 465 466 467 468 469 470 471 472 473 474 475

            del d[0]
            del d[1]
            del d[2]
            del d[3]
            del d[4]
            del d[5]

            d[0] = 3
            d[1] = 4
            d[2] = 5
            d[3] = 3
            d[4] = 4
            d[5] = 5
476

477 478 479 480 481 482 483
            x = d[0]
            x = d[1]
            x = d[2]
            x = d[3]
            x = d[4]
            x = d[5]

484 485 486 487 488 489
            has_key(0)
            has_key(2)
            has_key(4)
            has_key(6)
            has_key(8)
            has_key(10)
490 491 492 493 494 495 496 497 498 499 500

            del d[0]
            del d[1]
            del d[2]
            del d[3]
            del d[4]
            del d[5]

    def calibrate(self):

        d = {}
501
        has_key = lambda key: key in d
502

503
        for i in range(self.rounds):
504
            pass