tests/sha256line.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Tue, 26 Mar 2024 13:34:05 +0000
changeset 51551 6e4c8366c5ce
parent 51361 fa4c4fa232d6
permissions -rwxr-xr-x
stream-clone: disable gc for the initial section for the v3 format The number of small container created turn Python in a gc-frenzy that seriously impact performance. This significantly boost performance. The following number comes from a large private repository using perf::stream-locked-section: base-line: 35.04 seconds prev-change: 24.51 seconds (-30%) prev-change: 20.88 seconds (-40%) this-change: 14.22 seconds (-60% from baseline; -31% from prev)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51361
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     1
#!/usr/bin/env python3
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     2
#
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     3
# A tool to help producing large and poorly compressible files
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     4
#
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     5
# Usage:
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     6
#   $TESTDIR/seq.py 1000 | $TESTDIR/sha256line.py > my-file.txt
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     7
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     8
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     9
import hashlib
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    10
import sys
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    11
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    12
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    13
for line in sys.stdin:
fa4c4fa232d6 tests: make sha256line.py available for all tests
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    14
    print(hashlib.sha256(line.encode('utf8')).hexdigest())