Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- import array
- import sys
- if __name__ != "__main__":
- print("the fuck you do")
- exit(1)
- def bytestrm(filename, chunksize=8192):
- with open(filename, "rb") as f:
- while True:
- buf = f.read(chunksize)
- if buf:
- for b in buf:
- yield b
- else:
- break
- if len(sys.argv) < 2:
- print("usage: {} filename".format(sys.argv[0]))
- exit(1)
- vmax = sys.maxsize-2
- trend = array.array('L')
- for i in range(0,256):
- trend.append(0)
- last = 400;
- for b in bytestrm(str(sys.argv[1])):
- if last == b:
- trend[b] = trend[b] + 1
- if trend[b] >= vmax:
- print("overflow in {}".format(b))
- last = b
- for i in range(0,256):
- print("{} {}".format(i, trend[i]))
- #0-010134-ed-ks3318945 <~> time mono bytecunt.exe "$file" > a; time ./bytrend.py "$file" > b; diff a b
- #
- #real 0m0.115s
- #user 0m0.052s
- #sys 0m0.024s
- #
- #real 0m5.733s
- #user 0m5.708s
- #sys 0m0.004s
Advertisement
Add Comment
Please, Sign In to add comment