§
    ?Äj„   ã                   óâ  — d Z ddlmZ ddlZddlZddlZddlZddlm	Z	 ej
        defd„¦   «         Zdeej        gdf         deej        gdf         fd	„Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Zed
ej        fd„¦   «         Z ed
ej        fd„¦   «         Z!ed
ej        fd„¦   «         Z"ed
ej        fd„¦   «         Z#ed
ej        fd „¦   «         Z$ed
ej        fd!„¦   «         Z%ed
ej        fd"„¦   «         Z&ed
ej        fd#„¦   «         Z'e(d$k    r8 e)d%„ ej*        D ¦   «         ¦  «        r ej+        ¦   «          dS  e,d&¦  «         dS dS )'z=Benchmarks for assigning large NumPy data to protobuf fields.é    )ÚCallableN)Úunittest_pb2Ú	num_bytesc                 óD   — t          j        | ft           j        ¬¦  «        S )N)ÚshapeÚdtype)ÚnpÚzerosÚuint8)r   s    ú[C:\Projects\Historical\venv\Lib\site-packages\google/protobuf/internal/message_benchmark.pyÚ
make_arrayr      s   € å	Œ˜˜­B¬HÐ	5Ñ	5Ô	5Ð5ó    ÚfuncÚreturnc           
      óÆ  ‡ — t           j        t           j                             t           j        ¦  «        t           j                             dg¦  «        t           j                             d¦  «        t           j                             d¦  «        t          j        ‰ ¦  «        dt           j	        ddfˆ fd„¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         }|S )z&Decorates a function for benchmarking.r   i  @i  @Ústater   Nc                 ób   •—  ‰| ¦  «         | j         |                      d¦  «        z  | _        d S ©Nr   )Ú
iterationsÚrangeÚbytes_processed)r   r   s    €r   Úwrapperzbenchmark.<locals>.wrapper   s2   ø€ ð 	€Dˆ�K„K€KØ!Ô,¨u¯{ª{¸1©~¬~Ñ=€EÔÐÐr   )
Úgoogle_benchmarkÚregisterÚoptionÚunitÚkMillisecondÚ	arg_namesÚargÚ	functoolsÚwrapsÚState)r   r   s   ` r   Ú	benchmarkr#      s×   ø€ õ
 ÔÝÔ×ÒÕ 0Ô =Ñ>Ô>ÝÔ×$Ò$ k ]Ñ3Ô3ÝÔ×ÒÐ/Ñ0Ô0ÝÔ×ÒÐ0Ñ1Ô1Ý„?�4ÑÔð>Õ%Ô+ð >°ð >ð >ð >ð >ð >ñ Ôñ 2Ô1ñ 1Ô0ñ 4Ô3ñ ?Ô>ñ Ôð>ð 
€.r   r   c                 óÐ   — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }| r#t          j        ¦   «         }||j        d d …<   | °!d S d S ©Nr   ©r   )r   r   Úviewr	   Úint32r   ÚTestAllTypesÚrepeated_int32©r   ÚarrÚmsgs      r   Úbench_build_message_via_slicer.   $   sq   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬hÐ'Ñ7Ô7€#Øð  Ý
Ô
#Ñ
%Ô
%€CØ€CÔ�q�q�qÑð 	ð  ð  ð  ð  ð  r   c                 ó¼   — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }| rt          j        |¬¦  «        }| °d S d S )Nr   r&   ©r*   )r   r   r'   r	   r(   r   r)   ©r   r,   Ú_s      r   Úbench_build_messager3   ,   se   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬hÐ'Ñ7Ô7€#Øð 6ÝÔ!°Ð5Ñ5Ô5€Að 	ð 6ð 6ð 6ð 6ð 6r   c                 óÚ   — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }| r(t          j        ¦   «         }||j        j        d d …<   | °&d S d S r%   )	r   r   r'   r	   r(   r   ÚNestedTestAllTypesÚpayloadr*   r+   s      r   Ú$bench_build_message_nested_via_slicer7   3   ss   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬hÐ'Ñ7Ô7€#Øð (Ý
Ô
)Ñ
+Ô
+€CØ$'€C„KÔ˜q˜q˜qÑ!ð 	ð (ð (ð (ð (ð (r   c                 óØ   — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }| r't          j        t          |¬¦  «        ¬¦  «        }| °%d S d S ©Nr   r&   r0   ©r6   )r   r   r'   r	   r(   r   r5   Údictr1   s      r   Úbench_build_nested_message_dictr<   ;   sv   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬hÐ'Ñ7Ô7€#Øð JÝÔ'µÀCÐ0HÑ0HÔ0HÐIÑIÔI€Að 	ð Jð Jð Jð Jð Jr   c                 óâ   — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }| r,t          j        t          j        |¬¦  «        ¬¦  «        }| °*d S d S r9   )r   r   r'   r	   r(   r   r5   r)   r1   s      r   Ú bench_build_nested_message_int32r>   B   sz   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬hÐ'Ñ7Ô7€#Øð ÝÔ'ÝÔ)¸Ð=Ñ=Ô=ð	ñ 	ô 	€Að 	ð ð ð ð ð r   c                 ó¤   — |                       d¦  «        dz  }d|z  gdz  }| r,t          j        t          j        |¬¦  «        ¬¦  «        }| °*d S d S )Nr   éè  Úa)Úrepeated_cordr:   ©r   r   r5   r)   ©r   Ú
chunk_sizeÚstringsr2   s       r   Úbench_build_nested_message_cordrG   K   sv   € à�{Š{˜1‰~Œ~ Ñ%€*Ø�:ÑÐ Ñ%€'Øð ÝÔ'ÝÔ)¸Ð@Ñ@Ô@ð	ñ 	ô 	€Að 	ð ð ð ð ð r   c                 ó¤   — |                       d¦  «        dz  }d|z  gdz  }| r,t          j        t          j        |¬¦  «        ¬¦  «        }| °*d S d S )Nr   r@   rA   )Úrepeated_string_piecer:   rC   rD   s       r   Ú'bench_build_nested_message_string_piecerJ   U   sv   € à�{Š{˜1‰~Œ~ Ñ%€*Ø�:ÑÐ Ñ%€'Øð ÝÔ'ÝÔ)ÀÐHÑHÔHð	ñ 	ô 	€Að 	ð ð ð ð ð r   c                 óÖ   — t           j                             d¬¦  «        g|                      d¦  «        dz  z  }| r,t          j        t          j        |¬¦  «        ¬¦  «        }| °*d S d S )Né{   )Úbbr   é   )Úrepeated_nested_messager:   )r   r)   ÚNestedMessager   r5   )r   Úsubsr2   s      r   Ú)bench_build_nested_message_nested_messagerR   _   s…   € å
Ô
#×
1Ò
1°SÐ
1Ñ
9Ô
9Ð	:Ø‡k‚k�!�n„n˜Ññ
€$ð 	ð ÝÔ'ÝÔ)À$ÐGÑGÔGð	ñ 	ô 	€Að 	ð ð ð ð ð r   c                 ó¬  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }t          j        ¦   «         }t          j        ¦   «         }|j                             |¦  «         | rQ|  	                    ¦   «          | 
                    ¦   «          |                      ¦   «          |j        |j        d d …<   | °Od S d S r%   )r   r   r'   r	   Úfloat32r   r)   Úrepeated_floatÚextendÚpause_timingÚClearÚresume_timing©r   r,   r-   Ú
msg_sources       r   Úbench_assign_repeated_floatr\   j   sÊ   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬jÐ'Ñ9Ô9€#ÝÔ!Ñ#Ô#€#ÝÔ(Ñ*Ô*€*ØÔ×"Ò" 3Ñ'Ô'Ð'Øð 6Ø	×ÒÑÔÐØ‡I‚I�K„K€KØ	×ÒÑÔÐØ&Ô5€CÔ�q�q�qÑð	 	ð 6ð 6ð 6ð 6ð 6r   c                 ó¬  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }t          j        ¦   «         }t          j        ¦   «         }|j                             |¦  «         | rQ|  	                    ¦   «          | 
                    ¦   «          |                      ¦   «          |j        |j        d d …<   | °Od S d S r%   )r   r   r'   r	   Úint64r   r)   Úrepeated_int64rV   rW   rX   rY   r*   rZ   s       r   Ú$bench_assign_repeated_int64_to_int32r`   w   sÊ   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬hÐ'Ñ7Ô7€#ÝÔ!Ñ#Ô#€#ÝÔ(Ñ*Ô*€*ØÔ×"Ò" 3Ñ'Ô'Ð'Øð 6Ø	×ÒÑÔÐØ‡I‚I�K„K€KØ	×ÒÑÔÐØ&Ô5€CÔ�q�q�qÑð	 	ð 6ð 6ð 6ð 6ð 6r   c                 ó¬  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }t          j        ¦   «         }t          j        ¦   «         }|j                             |¦  «         | rQ|  	                    ¦   «          | 
                    ¦   «          |                      ¦   «          |j        |j        d d …<   | °Od S d S r%   )r   r   r'   r	   Úfloat64r   r)   Úrepeated_doublerV   rW   rX   rY   rU   rZ   s       r   Ú%bench_assign_repeated_double_to_floatrd   „   sÊ   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬jÐ'Ñ9Ô9€#ÝÔ!Ñ#Ô#€#ÝÔ(Ñ*Ô*€*ØÔ×#Ò# CÑ(Ô(Ð(Øð 7Ø	×ÒÑÔÐØ‡I‚I�K„K€KØ	×ÒÑÔÐØ&Ô6€CÔ�q�q�qÑð	 	ð 7ð 7ð 7ð 7ð 7r   c                 óH  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }t          j        ¦   «         }| rL|                      ¦   «          |                     ¦   «          |  	                    ¦   «          ||j
        d d …<   | °Jd S d S r%   )r   r   r'   r	   r^   r   r)   rW   rX   rY   r*   r+   s      r   Ú!bench_assign_numpy_int64_to_int32rf   ‘   s¢   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬hÐ'Ñ7Ô7€#ÝÔ!Ñ#Ô#€#Øð  Ø	×ÒÑÔÐØ‡I‚I�K„K€KØ	×ÒÑÔÐØ€CÔ�q�q�qÑð	 	ð  ð  ð  ð  ð  r   c                 óH  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }t          j        ¦   «         }| rL|                      ¦   «          |                     ¦   «          |  	                    ¦   «          ||j
        d d …<   | °Jd S d S r%   )r   r   r'   r	   rb   r   r)   rW   rX   rY   rU   r+   s      r   Ú"bench_assign_numpy_double_to_floatrh   œ   s¢   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬jÐ'Ñ9Ô9€#ÝÔ!Ñ#Ô#€#Øð  Ø	×ÒÑÔÐØ‡I‚I�K„K€KØ	×ÒÑÔÐØ€CÔ�q�q�qÑð	 	ð  ð  ð  ð  ð  r   c                 ód  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }t          j        ¦   «         }| rZ|                      ¦   «          |                     ¦   «          |  	                    ¦   «          |j
                             |¦  «         | °Xd S d S r%   )r   r   r'   r	   r(   r   r)   rW   rX   rY   r*   rV   r+   s      r   Úbench_extend_int32rj   §   ó¨   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬hÐ'Ñ7Ô7€#ÝÔ!Ñ#Ô#€#Øð #Ø	×ÒÑÔÐØ‡I‚I�K„K€KØ	×ÒÑÔÐØÔ×Ò˜cÑ"Ô"Ð"ð	 	ð #ð #ð #ð #ð #r   c                 ó
  — t          |                      d¦  «        ¦  «        }t          j        ¦   «         }t	          |¦  «        |_        |                     ¦   «         }| r#t          j                             |¦  «        }| °!d S d S r   ©r   r   r   r)   Ú
memoryviewÚoptional_bytesÚSerializeToStringÚ
FromString©r   r,   r-   Ú	msg_bytesr2   s        r   Úbench_decode_from_bytesrt   ²   s‚   € å�5—;’;˜q‘>”>Ñ"Ô"€#ÝÔ!Ñ#Ô#€#Ý! #‘”€#ÔØ×#Ò#Ñ%Ô%€)Øð 8ÝÔ!×,Ò,¨YÑ7Ô7€Að 	ð 8ð 8ð 8ð 8ð 8r   c                 ó$  — t          |                      d¦  «        ¦  «        }t          j        ¦   «         }t	          |¦  «        |_        t	          |                     ¦   «         ¦  «        }| r#t          j                             |¦  «        }| °!d S d S r   rm   rr   s        r   Úbench_decode_from_memoryviewrv   ¼   sŠ   € å�5—;’;˜q‘>”>Ñ"Ô"€#ÝÔ!Ñ#Ô#€#Ý! #‘”€#ÔÝ˜×.Ò.Ñ0Ô0Ñ1Ô1€)Øð 8ÝÔ!×,Ò,¨YÑ7Ô7€Að 	ð 8ð 8ð 8ð 8ð 8r   c                 óÌ   — t          |                      d¦  «        ¦  «        }t          j        ¦   «         }t	          |¦  «        |_        | r|                     ¦   «         }| °d S d S r   )r   r   r   r)   rn   ro   rp   )r   r,   r-   r2   s       r   Úbench_encode_into_bytesrx   Æ   sl   € å�5—;’;˜q‘>”>Ñ"Ô"€#ÝÔ!Ñ#Ô#€#Ý! #‘”€#ÔØð  Ø×ÒÑÔ€Að 	ð  ð  ð  ð  ð  r   c                 óH  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }t          j        ¦   «         }| rL||j        d d …<   |                      ¦   «          | 	                    ¦   «          |  
                    ¦   «          | °Jd S d S r%   )r   r   r'   r	   r(   r   r)   r*   rW   rX   rY   r+   s      r   Úbench_assign_int32rz   Ï   s¢   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬hÐ'Ñ7Ô7€#ÝÔ!Ñ#Ô#€#Øð Ø€CÔ�q�q�qÑØ	×ÒÑÔÐØ‡I‚I�K„K€KØ	×ÒÑÔÐð	 	ð ð ð ð ð r   c                 ój  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }t          j        ¦   «         }||j        d d …<   | rQ||j        t          |¦  «        d …<   |  	                    ¦   «          ||j        d d …<   |  
                    ¦   «          | °Od S d S r%   )r   r   r'   r	   r(   r   r)   r*   ÚlenrW   rY   r+   s      r   Úbench_assign_extend_int32r}   Ú   s½   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬hÐ'Ñ7Ô7€#ÝÔ!Ñ#Ô#€#Ø€#Ô�Q�Q�QÑØð Ø%(€CÔ•s˜3‘x”x�z�zÑ"Ø	×ÒÑÔÐØ€CÔ�q�q�qÑØ	×ÒÑÔÐð	 	ð ð ð ð ð r   c                 ó:  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }|d t          |¦  «        dz  …         }t          j        ¦   «         }|j         	                    |¦  «         | r||j        d d d…<   | °d S d S )Nr   r&   é   )
r   r   r'   r	   r(   r|   r   r)   r*   rV   )r   r,   Úhalf_arrr-   s       r   Úbench_assign_slice_int32r�   æ   s¢   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬hÐ'Ñ7Ô7€#Ø�•3�s‘8”8˜q‘=�Ô!€(ÝÔ!Ñ#Ô#€#ØÔ×Ò˜CÑ Ô Ð Øð 'Ø&€CÔ�s�s˜�sÑð 	ð 'ð 'ð 'ð 'ð 'r   c                 ód  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }t          j        ¦   «         }| rZ|                      ¦   «          |                     ¦   «          |  	                    ¦   «          |j
                             |¦  «         | °Xd S d S r%   )r   r   r'   r	   r^   r   r)   rW   rX   rY   r_   rV   r+   s      r   Úbench_extend_int64rƒ   ð   rk   r   c                 ód  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }t          j        ¦   «         }| rZ|                      ¦   «          |                     ¦   «          |  	                    ¦   «          |j
                             |¦  «         | °Xd S d S r%   )r   r   r'   r	   rT   r   r)   rW   rX   rY   rU   rV   r+   s      r   Úbench_extend_floatr…   û   s¨   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬jÐ'Ñ9Ô9€#ÝÔ!Ñ#Ô#€#Øð #Ø	×ÒÑÔÐØ‡I‚I�K„K€KØ	×ÒÑÔÐØÔ×Ò˜cÑ"Ô"Ð"ð	 	ð #ð #ð #ð #ð #r   c                 ód  — t          |                      d¦  «        ¦  «                             t          j        ¬¦  «        }t          j        ¦   «         }| rZ|                      ¦   «          |                     ¦   «          |  	                    ¦   «          |j
                             |¦  «         | °Xd S d S r%   )r   r   r'   r	   rb   r   r)   rW   rX   rY   rc   rV   r+   s      r   Úbench_extend_doubler‡     s¨   € å�5—;’;˜q‘>”>Ñ"Ô"×'Ò'­b¬jÐ'Ñ9Ô9€#ÝÔ!Ñ#Ô#€#Øð $Ø	×ÒÑÔÐØ‡I‚I�K„K€KØ	×ÒÑÔÐØÔ×Ò˜sÑ#Ô#Ð#ð	 	ð $ð $ð $ð $ð $r   c                 ó*  — t          |                      d¦  «        ¦  «        }t          j        ¦   «         }|                     ¦   «         }| rG|                      ¦   «          |                     ¦   «          |                      ¦   «          ||_        | °Ed S d S r   )	r   r   r   r)   ÚtobytesrW   rX   rY   ro   )r   r,   r-   Ú	arr_bytess       r   Úbench_assign_bytesr‹     s“   € å�5—;’;˜q‘>”>Ñ"Ô"€#ÝÔ!Ñ#Ô#€#Ø�kŠk‰mŒm€)Øð #Ø	×ÒÑÔÐØ‡I‚I�K„K€KØ	×ÒÑÔÐØ"€CÔð	 	ð #ð #ð #ð #ð #r   c                 ó  — t          |                      d¦  «        ¦  «        }t          j        ¦   «         }| rT|                      ¦   «          |                     ¦   «          |                      ¦   «          t          |¦  «        |_        | °Rd S d S r   )	r   r   r   r)   rW   rX   rY   rn   ro   r+   s      r   Ú"bench_assign_bytes_with_conversionr�     sŒ   € å�5—;’;˜q‘>”>Ñ"Ô"€#ÝÔ!Ñ#Ô#€#Øð )Ø	×ÒÑÔÐØ‡I‚I�K„K€KØ	×ÒÑÔÐÝ# C™œ€CÔð	 	ð )ð )ð )ð )ð )r   Ú__main__c              #   ó@   K  — | ]}|                      d ¦  «        V — ŒdS )z--benchmark_filterN)Ú
startswith)Ú.0r   s     r   ú	<genexpr>r’   )  s/   è è € ÐBÐB°#ˆ�ŠÐ,Ñ	-Ô	-ÐBÐBÐBÐBÐBÐBr   z3No benchmark filter specified. Skipping benchmarks.)-Ú__doc__Úcollections.abcr   r    Úsysr   Únumpyr	   Úgoogle.protobufr   ÚcacheÚintr   r"   r#   r.   r3   r7   r<   r>   rG   rJ   rR   r\   r`   rd   rf   rh   rj   rt   rv   rx   rz   r}   r�   rƒ   r…   r‡   r‹   r�   Ú__name__ÚanyÚargvÚmainÚprint© r   r   ú<module>r       sk  ðØ CÐ Cà $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ø 
€
€
€
à Ð Ð Ð Ø Ð Ð Ð à (Ð (Ð (Ð (Ð (Ð (ð „ð6˜#ð 6ð 6ð 6ñ „ð6ðØ
Ð$Ô*Ð+¨TÐ1Ô
2ðàÐÔ%Ð&¨Ð,Ô-ðð ð ð ð$ ð Ð)9Ô)?ð  ð  ð  ñ „ð ð ð6Ð/Ô5ð 6ð 6ð 6ñ „ð6ð ð(Ð0@Ô0Fð (ð (ð (ñ „ð(ð ðJÐ+;Ô+Að Jð Jð Jñ „ðJð ðÐ,<Ô,Bð ð ð ñ „ðð ðÐ+;Ô+Að ð ð ñ „ðð ðÐ3CÔ3Ið ð ð ñ „ðð ðÐ5EÔ5Kð ð ð ñ „ðð ð	6Ð'7Ô'=ð 	6ð 	6ð 	6ñ „ð	6ð ð	6Ð0@Ô0Fð 	6ð 	6ð 	6ñ „ð	6ð ð	7Ð1AÔ1Gð 	7ð 	7ð 	7ñ „ð	7ð ð Ð-=Ô-Cð  ð  ð  ñ „ð ð ð Ð.>Ô.Dð  ð  ð  ñ „ð ð ð#Ð.Ô4ð #ð #ð #ñ „ð#ð ð8Ð#3Ô#9ð 8ð 8ð 8ñ „ð8ð ð8Ð(8Ô(>ð 8ð 8ð 8ñ „ð8ð ð Ð#3Ô#9ð  ð  ð  ñ „ð ð ðÐ.Ô4ð ð ð ñ „ðð ðÐ%5Ô%;ð ð ð ñ „ðð ð'Ð$4Ô$:ð 'ð 'ð 'ñ „ð'ð ð#Ð.Ô4ð #ð #ð #ñ „ð#ð ð#Ð.Ô4ð #ð #ð #ñ „ð#ð ð$Ð/Ô5ð $ð $ð $ñ „ð$ð ð#Ð.Ô4ð #ð #ð #ñ „ð#ð ð)Ð.>Ô.Dð )ð )ð )ñ „ð)ð ˆzÒÐØ€SÐBÐB¸¼ÐBÑBÔBÑBÔBð AØÐÔÑÔÐÐÐà	€EÐ
?Ñ@Ô@Ð@Ð@Ð@ð	 Ðr   