time函数

WebRTC 的音频处理流水线

情到浓时终转凉″ 提交于 2019-12-25 07:44:44
基于 RTC 场景下要解决的声音的问题,WebRTC 有一个大体如下图所示的音频处理流水线: WebRTC 的音频处理流水线,不是一次性建立起来的,而是分阶段分步骤建立的。整体而言,可以认为这个流水线分两个阶段建立,或者可以认为这个流水线分为两部分:一部分可称为静态流水线,另一部分可称为动态流水线,或者也可以称为前端和后端。静态流水线,在某个时间点建立一次,随后在整个 WebRTC 通信过程中基本保持不变;动态流水线则在通信过程中,可能出现较为频繁的变动,如本地打开或禁用录制启动发送或停止发送音频数据,远端发送者加入或退出频道等,都会改变动态流水线。 如此,WebRTC 的音频处理流水线大致如下图所示: WebRTC 音频的静态流水线,建立之后,其相关节点状态由 AudioState 维护和管理。WebRTC 音频的静态流水线,主要包括 AudioDeviceModule , AudioProcessing ,和 AudioMixer 等,其中 AudioDeviceModule 用于采集和播放音频数据, AudioProcessing 主要用于对录制的音频数据做初始处理,如回声消除,降噪等, AudioMixer 主要用于对远端发送过来的音频数据做混音。 WebRTC 音频的静态流水线在 WebRtcVoiceEngine 初始化时建立: void

Python 日期和时间

萝らか妹 提交于 2019-12-25 00:54:39
Python 日期和时间 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。 Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。 时间间隔是以秒为单位的浮点小数。 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。 Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳, 如下实例: 实例(Python 2.0+) #!/usr/bin/python # -*- coding: UTF-8 -*- import time ; # 引入time模块 ticks = time . time ( ) print " 当前时间戳为: " , ticks 以上实例输出结果: 当前时间戳为: 1459994552.51 时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。 什么是时间元组? 很多Python函数用一个元组装起来的9组数字处理时间: 序号 字段 值 0 4位数年 2008 1 月 1 到 12 2 日 1到31 3 小时 0到23 4 分钟 0到59 5 秒 0到61 (60或61 是闰秒) 6 一周的第几日 0到6 (0是周一) 7 一年的第几日 1到366

python装饰器的通俗理解

对着背影说爱祢 提交于 2019-12-25 00:40:33
在学习Python的过程中,我相信有很多人和我一样,对Python的装饰器一直觉得很困惑,我也是困惑了好久,并通过思考和查阅才能略有领悟,我希望以下的内容会对你有帮助,我也努力通过通俗的方式使得对Python装饰器的理解更加的透彻。在文中如有遗漏和不足,欢迎交流和指点。 允许转载并注明出处: http://blog.csdn.net/u013471155 很多人对装饰器难以理解,原因是由于以下三点内容没有搞清楚: 关于函数“变量”(或“变量”函数)的理解 关于高阶函数的理解 关于嵌套函数的理解 那么如果能对以上的问题一一攻破,同时遵循装饰器的基本原则,相信会对装饰器有个很好的理解的。那么我们先来看以下装饰器的目的及其原则。 1、装饰器 装饰器实际上就是为了给某程序增添功能,但该程序已经上线或已经被使用,那么就不能大批量的修改源代码,这样是不科学的也是不现实的,因为就产生了装饰器,使得其满足: 不能修改被装饰的函数的源代码 不能修改被装饰的函数的调用方式 满足1、2的情况下给程序增添功能 那么根据需求,同时满足了这三点原则,这才是我们的目的。因为,下面我们从解决这三点原则入手来理解装饰器。 等等,我要在需求之前先说装饰器的原则组成: < 函数+实参高阶函数+返回值高阶函数+嵌套函数+语法糖 = 装饰器 > 这个式子是贯穿装饰器的灵魂所在! 2、需求的实现 假设有代码: improt

python常用模块

亡梦爱人 提交于 2019-12-24 21:09:44
time模块 常用表示时间方式: 时间戳,格式化的时间字符串,元组(struct_time) UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。 时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。 元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime() 1.时间戳转换成struct_time >>> time.time() 1550561734.9613395 >>> time.gmtime() time.struct_time(tm_year=2019, tm_mon=2, tm_mday=19, tm_hour=7, tm_min=35, tm_sec=59, tm_wday=1, tm_yday=50, tm_isdst=0) >>> time.localtime() time.struct_time(tm_year=2019, tm_mon=2, tm_mday=19, tm_hour=15, tm_min=36, tm_sec=13, tm

python基础-装饰器

寵の児 提交于 2019-12-24 13:08:07
python基础-装饰器 一、什么是装饰器   装饰器本质就是函数,功能是为其他函数附加功能 二、装饰器遵循的原则 1、不修改被修饰函数的源代码 2、不修改被修饰函数的调用方式 三、实现装饰器的知识储备 装饰器=高阶函数+函数嵌套+闭包 示例1: 用函数实现 1 #计算从1-100,统计函数运行时间 2 3 import time 4 def cal(l): 5 start_time=time.time() 6 res=0 7 for i in l: 8 time.sleep(0.1) 9 res+=i 10 stop_time = time.time() 11 print('函数的运行时间是%s' %(stop_time-start_time)) 12 return res 13 14 print(cal(range(100))) #直接打印得到运行的时间 执行结果: 1 函数的运行时间是10.007169723510742 2 4950 示例2:用装饰器实现函数运行时间 1 import time 2 def timmer(func): 3 def wrapper(*args,**kwargs): 4 start_time=time.time() 5 res=func(*args,**kwargs) 6 stop_time = time.time() 7 print(

如何使用PHP计算两个日期之间的差异?

雨燕双飞 提交于 2019-12-23 20:02:37
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我有两个日期格式: Start Date: 2007-03-24 End Date: 2009-06-26 现在,我需要以以下形式查找这两者之间的区别: 2 years, 3 months and 2 days 如何在PHP中做到这一点? #1楼 前段时间,我编写了 format_date 函数,因为它为 您 提供 了如何选择日期的许多选项 : function format_date($date, $type, $seperator="-") { if($date) { $day = date("j", strtotime($date)); $month = date("n", strtotime($date)); $year = date("Y", strtotime($date)); $hour = date("H", strtotime($date)); $min = date("i", strtotime($date)); $sec = date("s", strtotime($date)); switch($type) { case 0: $date = date("Y".$seperator."m".$seperator."d",mktime($hour, $min, $sec, $month,

常用模块

这一生的挚爱 提交于 2019-12-23 13:07:52
介绍 time与datetime模块 random模块 os模块 sys模块 shutil模块 json&pickle模块 shelve模块 xml模块 configparser模块 hashlib模块 suprocess模块 logging模块 re模块 time与datetime时间模块   python 中时间表示方法有:时间戳,即从1975年1月1日00:00:00到现在的秒数;格式化后的时间字符串;时间struct_time 元组。   struct_time元组中元素主要包括tm_year(年)、tm_mon(月)、tm_mday(日)、tm_hour(时)、tm_min(分)、tm_sec(秒)、tm_wday(weekday0 - 6(0表示周日))、tm_yday(一年中的第几天1 - 366)、tm_isdst(是否是夏令时)   1.time 常用函数 time.time() 返回当前时间戳 import time >>> time.time() 1465370844.096474 #time.ctime() 返回这种格式的时间字符'Wed Jun 8 15:27:48 2016',显示当前时间.同时也可以转换时间戳 >>> time.ctime() Wed Jan 17 18:50:22 2018 >>> time.ctime(time.time()

Python:线程

Deadly 提交于 2019-12-23 00:50:41
Python中创建线程有两种方式:函数或者用类来创建线程对象。 函数式: 调用 _thread 模块中的start_new_thread()函数来产生新线程。 类: 创建 threading.Thread的子类来包装一个线程对象。 一.函数式:调用thread模块中的start_new_thread()函数来产生新线程 thread.start_new_thread ( function, args[, kwargs] ) function - 线程函数 args - 传递给线程函数的参数,他必须是个tuple类型 kwargs - 可选参数 例:通过thread来创建新线程 import thread,time def timer(name,delay): count = 0 while count < 5: time.sleep(delay) count +=1 print "%s:%s" %(name,time.ctime()) #创建两个线程 thread.start_new_thread(timer,('Thread-1',2,)) #timer表示执行timer函数,后面元组内表示timer函数的两个参数 thread.start_new_thread(timer,('Thread-2',4,)) while 1: pass 输出结果: Thread-1:Tue Oct

如何精准的获得时钟频率计算耗时——QueryPerformanceFrequency

ⅰ亾dé卋堺 提交于 2019-12-22 12:02:05
时间处理 在处理一些获得时间的问题时,可以用clock()函数简单的获得时钟,但是进度往往是不够的,这个时候可以用 QueryPerformanceFrequency(&frequency)获得更精确的时钟 1.clock(),字面精度1ms,实际精度是操作系统的时间片,windows下单核10ms,双核15ms 2.QueryPerformenceCounter,字面精度100ns(0.1us),实际精度100us左右 对于毫秒级 用2个都可以,对于us级建议用QueryPerformenceCounter 下面介绍QueryPerformenceCounter的快速用法: # include <iostream> # include <windows.h> using namespace std ; LARGE_INTEGER frequency ; void function ( ) { cout << "cost time=" ; } int main ( ) { double dff , begin_ , _end , time ; QueryPerformanceFrequency ( & frequency ) ; //获得时钟频率 dff = ( double ) frequency . QuadPart ; //取得频率*/

STM32之系统滴答定时器

拥有回忆 提交于 2019-12-21 04:09:19
一、SysTick(系统滴答定时器)概述   操作系统需要一个滴答定时器周期性产生中断,以产生系统运行的节拍。在中断服务程序里,基于优先级调度的操作系统会根据进程优先级切换任务,基于时间片轮转系统会根据时间片切换任务。总之,滴答定时器是一个操作系统的“心跳”。   Cortex-M3在内核部分封装了一个滴答定时器--SysTick,在之前的ARM内核通常是不会把定时器做进内核,定时器都是SOC厂商自己制作的外设。显然,Cortex-M3封装了这么一个定时器,对于将操作系统移植到不同SOC厂商生产的Cortex-M3系类MCU上,带来了极大的方便。Cortex-M3内核统一了这样的一个系统滴答定时器,移植操作系统的时候可以使用内核的定时器,而忽略掉不同厂商生产定时器带来的分歧。 二、SysTick control and status register(STK_CTRL)   SysTick的控制是极其简单的,它的控制和状态都汇聚在同一个寄存器STK_CTRL上。   STK_CTRL的每一位的含义英文解释都是很清晰的,不必多说。需要额外讨论的是COUNTFLAG标志位,这个标志位代表的含义是:当计数为0时,也即STK_VAL计数至0时,此标志位置1。   经过笔者一番摸索,对此位有更多的看法。 COUNTFLAG:    1、此位与SysTick的中断无关,不是中断标志位