Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import gc
- import cProfile
- import pstats
- from pyasn1.type import namedtype
- from pyasn1.type import univ
- from pyasn1.compat.octets import ints2octs, null
- from pyasn1.codec.der.decoder import decode as der_decode
- from pyasn1.codec.ber.decoder import decode as ber_decode
- from pyasn1_modules import pem
- from pyasn1_modules import rfc2314
- gc.disable()
- asn = univ.Set(
- componentType=namedtype.NamedTypes(
- namedtype.NamedType('place-holder', univ.Null(null)),
- namedtype.OptionalNamedType('first-name', univ.OctetString()),
- namedtype.DefaultedNamedType('age', univ.Integer(33)),
- )
- )
- pem_64 = """\
- MIIDATCCAekCAQAwgZkxCzAJBgNVBAYTAlJVMRYwFAYDVQQIEw1Nb3Njb3cgUmVn
- aW9uMQ8wDQYDVQQHEwZNb3Njb3cxGjAYBgNVBAoTEVNOTVAgTGFib3JhdG9yaWVz
- MQwwCgYDVQQLFANSJkQxFTATBgNVBAMTDHNubXBsYWJzLmNvbTEgMB4GCSqGSIb3
- DQEJARYRaW5mb0Bzbm1wbGFicy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
- ggEKAoIBAQC9n2NfGS98JDBmAXQn+vNUyPB3QPYC1cwpX8UMYh9MdAmBZJCnvXrQ
- Pp14gNAv6AQKxefmGES1b+Yd+1we9HB8AKm1/8xvRDUjAvy4iO0sqFCPvIfSujUy
- pBcfnR7QE2itvyrMxCDSEVnMhKdCNb23L2TptUmpvLcb8wfAMLFsSu2yaOtJysep
- oH/mvGqlRv2ti2+E2YA0M7Pf83wyV1XmuEsc9tQ225rprDk2uyshUglkDD2235rf
- 0QyONq3Aw3BMrO9ss1qj7vdDhVHVsxHnTVbEgrxEWkq2GkVKh9QReMZ2AKxe40j4
- og+OjKXguOCggCZHJyXKxccwqCaeCztbAgMBAAGgIjAgBgkqhkiG9w0BCQIxExMR
- U05NUCBMYWJvcmF0b3JpZXMwDQYJKoZIhvcNAQEFBQADggEBAAihbwmN9M2bsNNm
- 9KfxqiGMqqcGCtzIlpDz/2NVwY93cEZsbz3Qscc0QpknRmyTSoDwIG+1nUH0vzkT
- Nv8sBmp9I1GdhGg52DIaWwL4t9O5WUHgfHSJpPxZ/zMP2qIsdPJ+8o19BbXRlufc
- 73c03H1piGeb9VcePIaulSHI622xukI6f4Sis49vkDaoi+jadbEEb6TYkJQ3AMRD
- WdApGGm0BePdLqboW1Yv70WRRFFD8sxeT7Yw4qrJojdnq0xMHPGfKpf6dJsqWkHk
- b5DRbjil1Zt9pJuF680S9wtBzSi0hsMHXR9TzS7HpMjykL2nmCVY6A78MZapsCzn
- GGbx7DI=
- """
- pem_text = pem.readBase64fromText(pem_64)
- pem_spec = rfc2314.CertificationRequest()
- examples = dict(
- small_scalar=(
- ints2octs((1, 1, 0)),
- ber_decode,
- {}
- ),
- small_schemaless=(
- ints2octs((48, 128, 36, 128, 4, 4, 113, 117, 105, 99, 4, 4, 107,
- 32, 98, 114, 4, 3, 111, 119, 110, 0, 0, 0,
- 0)),
- ber_decode,
- {}
- ),
- small_with_schema=(
- ints2octs((49, 128, 5, 0, 36, 128, 4, 11, 113, 117, 105, 99, 107,
- 32, 98, 114, 111, 119, 110, 0, 0, 2, 1, 1, 0, 0)),
- ber_decode,
- {"asn1Spec": asn}
- ),
- large_with_schema=(
- pem_text,
- der_decode,
- {"asn1Spec": pem_spec}
- )
- )
- TIMES = 30000
- if __name__ == "__main__":
- for name, triplet in examples.items():
- print('Pondering ', name)
- substrate, method, kwargs = triplet
- pr = cProfile.Profile()
- pr.enable()
- for _ in range(TIMES):
- method(substrate, **kwargs)
- pr.disable()
- st = pstats.Stats(pr)
- st.strip_dirs()
- st.sort_stats('cumtime')
- st.print_stats(.3)
- print('-' * 80)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement