Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Хочу всё знать! Павел Петлинский, Rambler&Co

Хочу всё знать! Павел Петлинский, Rambler&Co

Выступление на конференции PyCon Russia 2016

IT-People

July 25, 2016
Tweet

More Decks by IT-People

Other Decks in Programming

Transcript

  1. 40 50+ 700 1700+ млн человек суммарная аудитория группы количество

    изданий,
 сервисов и проектов разработчиков человек в хорошей компании
  2. Контакты В группе компаний Rambler&Co всегда есть открытые вакансии для

    тех, кто хочет профессионально расти и развиваться, занимаясь тем, что по-настоящему нравится [email protected] www.rambler-co.ru/jobs
  3. 7

  4. 34

  5. Java 9 / JEP 254: Compact Strings 35 … We

    propose to change the internal representation of the String class from a UTF-16 char array to a byte array plus an encoding-flag field. The new String class will store characters encoded either as ISO-8859-1/ Latin-1 (one byte per character), or as UTF-16 (two bytes per character), based upon the contents of the string. The encoding flag will indicate which encoding is used. …. http://openjdk.java.net/jeps/254
  6. Python - unicode object 36 There are 4 forms of

    Unicode strings: - compact ascii: … - compact: … - legacy string, not ready: … - legacy string, ready: … Compact strings use only one memory block (structure + characters), whereas legacy strings use one block for the structure and one block for characters. https://github.com/python/cpython/blob/3.5/Include/unicodeobject.h
  7. Python - unicode object 37 Character size: - PyUnicode_WCHAR_KIND (0):

    … - PyUnicode_1BYTE_KIND (1): … - PyUnicode_2BYTE_KIND (2): … - PyUnicode_4BYTE_KIND (4): … https://github.com/python/cpython/blob/3.5/Include/unicodeobject.h
  8. Python - unicode object 41 “Less code is better code,

    no code is best code.” (c) Wil Shipley
  9. 52

  10. Что ждет нас в Python 3.6? 53 •Issue #27097: Python

    interpreter is now about 7% faster due to optimized instruction decoding. Based on patch by Demur Rumed. •Issue #26647: Python interpreter now uses 16-bit wordcode instead of bytecode. Patch by Demur Rumed.
  11. Выводы 60 • Python уже имеет достаточно большое число внутренних

    оптимизаций
 • Оптимизации ориентированы на “средний” случай
 • Возможность для дальнейших оптимизаций есть, над ними работают и они будут
 • Оптимизации могут мешать корректным замерам