Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
3 \Aã@sddlmZmZddlmZddlZddlZddlZddl Z ddl Tddl m Z m Z dd„Z Gdd „d ƒZGd d „d ƒZd d „ZeGdd„dƒƒZeGdd„deƒƒZdd„ZGdd„dƒZGdd„deƒZdd„ZGdd„dƒZGdd„deƒZGdd„deƒZGd d!„d!ƒZd"d#„ZdS)$é)ÚSequenceÚIterable)Útotal_orderingN)Ú*)Ú_get_object_tracebackÚ _get_tracescCszxtd D]l}t|ƒdkr:|dkr:|r.d||fSd||fSt|ƒdksN|dkrj|r^d ||fSd ||fS|d }qWdS)NÚBÚKiBÚMiBÚGiBÚTiBédz%+.1f %sz%.1f %sé iz%+.0f %sz%.0f %s)rr r r r i()Úabs)ÚsizeZsignZunit©rú#/usr/lib64/python3.6/tracemalloc.pyÚ _format_size s     rc@sDeZdZdZdZdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dS)Ú StatisticzS Statistic difference on memory allocations between two Snapshot instance. Ú tracebackrÚcountcCs||_||_||_dS)N)rrr)ÚselfrrrrrrÚ__init__%szStatistic.__init__cCst|j|j|jfƒS)N)Úhashrrr)rrrrÚ__hash__*szStatistic.__hash__cCs$|j|jko"|j|jko"|j|jkS)N)rrr)rÚotherrrrÚ__eq__-s  zStatistic.__eq__cCsBd|jt|jdƒ|jf}|jr>|j|j}|dt|dƒ7}|S)Nz%s: size=%s, count=%iFz , average=%s)rrrr)rÚtextÚaveragerrrÚ__str__2s   zStatistic.__str__cCsd|j|j|jfS)Nz))rrr)rrrrÚ__repr__<szStatistic.__repr__cCs|j|j|jfS)N)rrr)rrrrÚ _sort_key@szStatistic._sort_keyN)rrr) Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú __slots__rrrrr r!rrrrrs rc@sDeZdZdZdZdd„Zd d „Zd d „Zd d„Zdd„Z dd„Z dS)Ú StatisticDiffzd Statistic difference on memory allocations between an old and a new Snapshot instance. rrÚ size_diffrÚ count_diffcCs"||_||_||_||_||_dS)N)rrr(rr))rrrr(rr)rrrrKs zStatisticDiff.__init__cCst|j|j|j|j|jfƒS)N)rrrr(rr))rrrrrRszStatisticDiff.__hash__cCs<|j|jko:|j|jko:|j|jko:|j|jko:|j|jkS)N)rrr(rr))rrrrrrVs     zStatisticDiff.__eq__cCsPd|jt|jdƒt|jdƒ|j|jf}|jrL|j|j}|dt|dƒ7}|S)Nz %s: size=%s (%s), count=%i (%+i)FTz , average=%s)rrrr(rr))rrrrrrr]s    zStatisticDiff.__str__cCsd|j|j|j|j|jfS)Nz9)rrr(rr))rrrrr is zStatisticDiff.__repr__cCs t|jƒ|jt|jƒ|j|jfS)N)rr(rr)rr)rrrrr!ns  zStatisticDiff._sort_keyN)rrr(rr)) r"r#r$r%r&rrrrr r!rrrrr'Ds r'cCs²g}xp|jƒD]d\}}|j|dƒ}|dk rPt||j|j|j|j|j|jƒ}nt||j|j|j|jƒ}|j|ƒqWx6|jƒD]*\}}t|d|j d|j ƒ}|j|ƒq€W|S)Nr)ÚitemsÚpopr'rrÚappend)Ú old_groupÚ new_groupÚ statisticsrÚstatZpreviousrrrÚ_compare_grouped_statsts  r1c@s\eZdZdZdZdd„Zedd„ƒZedd„ƒZd d „Z d d „Z d d„Z dd„Z dd„Z dS)ÚFramez Frame of a traceback. Ú_framecCs ||_dS)N)r3)rÚframerrrr�szFrame.__init__cCs |jdS)Nr)r3)rrrrÚfilename“szFrame.filenamecCs |jdS)Né)r3)rrrrÚlineno—sz Frame.linenocCs |j|jkS)N)r3)rrrrrr›sz Frame.__eq__cCs |j|jkS)N)r3)rrrrrÚ__lt__žsz Frame.__lt__cCs t|jƒS)N)rr3)rrrrr¡szFrame.__hash__cCsd|j|jfS)Nz%s:%s)r5r7)rrrrr¤sz Frame.__str__cCsd|j|jfS)Nz)r5r7)rrrrr §szFrame.__repr__N)r3)r"r#r$r%r&rÚpropertyr5r7rr8rrr rrrrr2ˆs  r2c@sfeZdZdZdZdd„Zdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z ddd„ZdS)Ú Tracebackz` Sequence of Frame instances sorted from the most recent frame to the oldest frame. Ú_framescCstj|ƒ||_dS)N)rrr;)rÚframesrrrr³s zTraceback.__init__cCs t|jƒS)N)Úlenr;)rrrrÚ__len__¹szTraceback.__len__cCs4t|tƒr"tdd„|j|DƒƒSt|j|ƒSdS)Ncss|]}t|ƒVqdS)N)r2)Ú.0Útracerrrú ¾sz(Traceback.__getitem__..)Ú isinstanceÚsliceÚtupler;r2)rÚindexrrrÚ __getitem__¼s zTraceback.__getitem__cCs |j|jkS)N)r3r;)rr4rrrÚ __contains__ÂszTraceback.__contains__cCs t|jƒS)N)rr;)rrrrrÅszTraceback.__hash__cCs |j|jkS)N)r;)rrrrrrÈszTraceback.__eq__cCs |j|jkS)N)r;)rrrrrr8ËszTraceback.__lt__cCs t|dƒS)Nr)Ústr)rrrrrÎszTraceback.__str__cCsdt|ƒfS)Nz)rD)rrrrr ÑszTraceback.__repr__NcCsng}|dk r|dkr|SxP|d|…D]@}|jd|j|jfƒtj|j|jƒjƒ}|r&|jd|ƒq&W|S)Nrz File "%s", line %sz %s)r,r5r7Ú linecacheÚgetlineÚstrip)rÚlimitÚlinesr4ÚlinerrrÚformatÔszTraceback.format)r;)N)r"r#r$r%r&rr>rFrGrrr8rr rOrrrrr:«sr:cCs t|ƒ}|dk rt|ƒSdSdS)zé Get the traceback where the Python object *obj* was allocated. Return a Traceback instance. Return None if the tracemalloc module is not tracing memory allocations or did not trace the allocation of the object. N)rr:)Úobjr<rrrÚget_object_tracebackásrQc@s`eZdZdZdZdd„Zedd„ƒZedd„ƒZed d „ƒZ d d „Z d d„Z dd„Z dd„Z dS)ÚTracez" Trace of a memory block. Ú_tracecCs ||_dS)N)rS)rr@rrrröszTrace.__init__cCs |jdS)Nr)rS)rrrrÚdomainûsz Trace.domaincCs |jdS)Nr6)rS)rrrrrÿsz Trace.sizecCst|jdƒS)Né)r:rS)rrrrrszTrace.tracebackcCs |j|jkS)N)rS)rrrrrrsz Trace.__eq__cCs t|jƒS)N)rrS)rrrrr szTrace.__hash__cCsd|jt|jdƒfS)Nz%s: %sF)rrr)rrrrr sz Trace.__str__cCsd|jt|jdƒ|jfS)Nz'F)rTrrr)rrrrr szTrace.__repr__N)rS)r"r#r$r%r&rr9rTrrrrrr rrrrrRðs   rRc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)Ú_TracescCstj|ƒ||_dS)N)rrÚ_traces)rÚtracesrrrrs z_Traces.__init__cCs t|jƒS)N)r=rW)rrrrr>sz_Traces.__len__cCs4t|tƒr"tdd„|j|DƒƒSt|j|ƒSdS)Ncss|]}t|ƒVqdS)N)rR)r?r@rrrrA sz&_Traces.__getitem__..)rBrCrDrWrR)rrErrrrFs z_Traces.__getitem__cCs |j|jkS)N)rSrW)rr@rrrrG$sz_Traces.__contains__cCs |j|jkS)N)rW)rrrrrr'sz_Traces.__eq__cCs dt|ƒS)Nz)r=)rrrrr *sz_Traces.__repr__N) r"r#r$rr>rFrGrr rrrrrVs rVcCs&tjj|ƒ}|jdƒr"|dd…}|S)Nz.pycr6éÿÿÿÿ)ÚosÚpathÚnormcaseÚendswith)r5rrrÚ_normalize_filename.s   r^c@seZdZdd„Zdd„ZdS)Ú BaseFiltercCs ||_dS)N)Ú inclusive)rr`rrrr6szBaseFilter.__init__cCst‚dS)N)ÚNotImplementedError)rr@rrrÚ_match9szBaseFilter._matchN)r"r#r$rrbrrrrr_5sr_csJeZdZd‡fdd„ Zedd„ƒZdd„Zd d „Zd d „Zd d„Z ‡Z S)ÚFilterNFcs2tƒj|ƒ||_t|ƒ|_||_||_||_dS)N)Úsuperrr`r^Ú_filename_patternr7Ú all_framesrT)rr`Úfilename_patternr7rfrT)Ú __class__rrr>s   zFilter.__init__cCs|jS)N)re)rrrrrgGszFilter.filename_patterncCs6t|ƒ}tj||jƒsdS|jdkr(dS||jkSdS)NFT)r^Úfnmatchrer7)rr5r7rrrÚ_match_frame_implKs  zFilter._match_frame_implcCs|j||ƒ|j AS)N)rjr`)rr5r7rrrÚ _match_frameTszFilter._match_framecsHˆjr,t‡fdd„|Dƒƒr"ˆjSˆj Sn|d\}}ˆj||ƒSdS)Nc3s|]\}}ˆj||ƒVqdS)N)rj)r?r5r7)rrrrAYsz*Filter._match_traceback..r)rfÚanyr`rk)rrr5r7r)rrÚ_match_tracebackWs    zFilter._match_tracebackcCsD|\}}}|j|ƒ}|jdk r@|jr2|o0||jkS|p>||jkS|S)N)rmrTr`)rr@rTrrÚresrrrrbbs   z Filter._match)NFN) r"r#r$rr9rgrjrkrmrbÚ __classcell__rr)rhrrc=s    rccs0eZdZ‡fdd„Zedd„ƒZdd„Z‡ZS)Ú DomainFiltercstƒj|ƒ||_dS)N)rdrÚ_domain)rr`rT)rhrrrns zDomainFilter.__init__cCs|jS)N)rq)rrrrrTrszDomainFilter.domaincCs|\}}}||jk|j AS)N)rTr`)rr@rTrrrrrrbvs zDomainFilter._match)r"r#r$rr9rTrbrorr)rhrrpms  rpc@sXeZdZdZdd„Zdd„Zedd„ƒZdd „Zd d „Z d d „Z ddd„Z ddd„Z dS)ÚSnapshotzB Snapshot of traces of memory blocks allocated by Python. cCst|ƒ|_||_dS)N)rVrXÚtraceback_limit)rrXrsrrrr€s zSnapshot.__init__c Cs*t|dƒ�}tj||tjƒWdQRXdS)z1 Write the snapshot into a file. ÚwbN)ÚopenÚpickleÚdumpZHIGHEST_PROTOCOL)rr5Úfprrrrw†s z Snapshot.dumpc Cs t|dƒ� }tj|ƒSQRXdS)z. Load a snapshot from a file. ÚrbN)rurvÚload)r5rxrrrrz�s z Snapshot.loadcs@|rt‡fdd„|DƒƒsdS|r.Fc3s|]}|jˆƒ VqdS)N)rb)r?r{)r@rrrA›sT)rl)rÚinclude_filtersÚexclude_filtersr@r)r@rÚ _filter_trace•s    zSnapshot._filter_tracecs†t|tƒstdt|ƒjƒ‚|rng‰g‰x(|D] }|jrDˆj|ƒq.ˆj|ƒq.W‡‡‡fdd„ˆjjDƒ}n ˆjjj ƒ}t |ˆj ƒS)zð Create a new Snapshot instance with a filtered traces sequence, filters is a list of Filter or DomainFilter instances. If filters is an empty list, return a new Snapshot instance with a copy of the traces. z)filters must be a list of filters, not %scsg|]}ˆjˆˆ|ƒr|‘qSr)r~)r?r@)r}r|rrrú ±sz*Snapshot.filter_traces..) rBrÚ TypeErrorÚtyper"r`r,rXrWÚcopyrrrs)rÚfiltersr{Z new_tracesr)r}r|rrÚ filter_traces s    zSnapshot.filter_tracesc Csè|dkrtd|fƒ‚|r.|d kr.td|ƒ‚i}i}|�sxÒ|jjD]Æ}|\}}}y ||} WnZtk rº|dkr~|} n(|dkr”|dd…} n|dddff} t| ƒ} | ||<YnXy(|| } | j|7_| jd7_WqFtk �r t| |dƒ|| <YqFXqFWnÒxÐ|jjD]Ä}|\}}}x²|D]ª} y || } WnFtk �r†|dk�rd| f} n| ddff} t| ƒ} | || <YnXy(|| } | j|7_| jd7_Wn&tk �rÖt| |dƒ|| <YnX�q0W�qW|S) Nrr5r7zunknown key_type: %rz/cumulative mode cannot by used with key type %rr6r)rr5r7)r7r5)Ú ValueErrorrXrWÚKeyErrorr:rrr) rÚkey_typeÚ cumulativeZstatsZ tracebacksr@rTrZtrace_tracebackrr<r0r4rrrÚ _group_by¹sX       "zSnapshot._group_byFcCs,|j||ƒ}t|jƒƒ}|jdtjd�|S)zd Group statistics by key_type. Return a sorted list of Statistic instances. T)ÚreverseÚkey)r‰ÚlistÚvaluesÚsortrr!)rr‡rˆZgroupedr/rrrr/ìs  zSnapshot.statisticscCs6|j||ƒ}|j||ƒ}t||ƒ}|jdtjd�|S)z­ Compute the differences with an old snapshot old_snapshot. Get statistics as a sorted list of StatisticDiff instances, grouped by group_by. T)rŠr‹)r‰r1rŽr'r!)rZ old_snapshotr‡rˆr.r-r/rrrÚ compare_toös    zSnapshot.compare_toN)F)F) r"r#r$r%rrwÚ staticmethodrzr~r„r‰r/r�rrrrrr{s  3 rrcCs$tƒstdƒ‚tƒ}tƒ}t||ƒS)zI Take a snapshot of traces of memory blocks allocated by Python. zLthe tracemalloc module must be tracing memory allocations to take a snapshot)Z is_tracingÚ RuntimeErrorrZget_traceback_limitrr)rXrsrrrÚ take_snapshots r’)Ú collectionsrrÚ functoolsrrirIZos.pathrZrvZ _tracemallocrrrrr'r1r2r:rQrRrVr^r_rcrprrr’rrrrÚs0 &0# 5%0