begin

thinkphp 性能调试

♀尐吖头ヾ 提交于 2019-12-04 06:06:23
开发过程中,有些时候为了测试性能,经常需要调试某段代码的运行时间或者内存占用开销,系统提供了G方法可以很方便的获取某个区间的运行时间和内存占用情况。 例如: 富瑞联华大理石平台 大理石平台检定规程 G ( 'begin' ); // ...其他代码段 G ( 'end' ); // ...也许这里还有其他代码 // 进行统计区间 echo G ( 'begin' , 'end' ). 's' ; G('begin','end') 表示统计begin位置到end位置的执行时间(单位是秒),begin必须是一个已经标记过的位置,如果这个时候end位置还没被标记过,则会自动把当前位置标记为end标签,输出的结果类似于: 0.0056s 默认的统计精度是小数点后4位,如果觉得这个统计精度不够,还可以设置例如: G ( 'begin' , 'end' , 6 ). 's' ; 可能的输出会变成: 0.005587s 如果你的环境支持内存占用统计的话,还可以使用G方法进行区间内存开销统计(单位为kb),例如: echo G ( 'begin' , 'end' , 'm' ). 'kb' ; 第三个参数使用m表示进行内存开销统计,输出的结果可能是: 625kb 同样,如果end标签没有被标记的话,会自动把当前位置先标记位end标签。 如果环境不支持内存统计,则该参数无效

Mysql --09 Innodb核心特性——事务

旧城冷巷雨未停 提交于 2019-12-04 04:56:16
目录 Innodb核心特性——事务 1.什么是事务 2.事务的通俗理解 3.事务ACID特性 4.事务流程举例 5.事务的控制语句 6.事务隐式提交情况 7.事务日志redo基本功能 8.redo数据实例恢复过程 9.事务日志undo 10.redo和undo的存储位置 11.事务中的锁 12.多版本并发控制(MVCC) 13.锁的粒度 14.事务的隔离级别 15.脏读 幻读 重复读 查询原因,和解决办法 (RR级别) Innodb核心特性——事务 1.什么是事务 主要针对DML语句(update,delete,insert) 一组数据操作执行步骤,这些步骤被视为一个工作单元: 1)用于对多个语句进行分组 2)可以在多个客户机并发访问同一个表中的数据时使用 所有步骤都成功或都失败 1)如果所有步骤正常,则执行 2)如果步骤出现错误或不完整,则取消 2.事务的通俗理解 伴随着“交易”出现的数据库概念。 我们理解的“交易”是什么? 1)物与物的交换(古代) 2)货币现金与实物的交换(现代1) 3)虚拟货币与实物的交换(现代2) 4)虚拟货币与虚拟实物交换(现代3) 数据库中的“交易”是什么? 1)事务又是如何保证“交易”的“和谐”? 2)ACID 3.事务ACID特性 Atomic(原子性) 所有语句作为一个单元,要么全部成功执行或全部取消。 Consistent(一致性)

Tarjan 【整理】

只谈情不闲聊 提交于 2019-12-04 02:00:05
Tarjan 【整理】 #include<bits/stdc++.h> using namespace std; class FastIO{ /* copyright (c) dgklr 2019. All rights reserved. */ bool if_debug = 0; char st[70]; // stack int pl; #ifdef linux #define putc(x) putchar_unlocked(x) #define getc() getchar_unlocked() #else #define putc(x) putchar(x) #define getc() getchar() #endif #define endl '\n' // I don't have the authority to get this. public: FastIO operator << (long long x){ pl = 0; if (x == 0) putc('0'); if (x < 0) putc('-'); while (x != 0) st[++pl] = x % 10 + 48, x /= 10; while (pl != 0) putc(st[pl]), pl --; return (*this); } FastIO operator <<

DBGrid中插入DateTimePicker

被刻印的时光 ゝ 提交于 2019-12-04 00:16:48
DateTimePicker inside a DBGrid Here's how to place a TDateTimePicker into a DBGrid. Create visually more attractive user interfaces for editing date/time fields inside a DBGrid - place a drop down calendar into a cell of a DBGrid. procedure TForm1.DBGrid1DrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if (gdFocused in State) then begin if (Column.Field.FieldName = 'DateAdded') then with DateTimePicker do begin Left := Rect.Left + DBGrid1.Left + 1; Top := Rect.Top + DBGrid1.Top + 1; Width := Rect.Right - Rect.Left + 2; Width :

FireDAC 下的 Sqlite [12] - 备忘录(草草结束这个话题了).

霸气de小男生 提交于 2019-12-03 17:09:40
该话题的继续延伸主要就是 SQL 的语法了, 草草收场的原因是现在的脑筋已经进入了 IntraWeb 的世界. 相关备忘会随时补充在下面: //连接多个数据库的参考代码: FDConnection1.ExecSQL('ATTACH ''c:\hr.sdb'' AS hr'); FDConnection1.ExecSQL('ATTACH ''c:\cust.sdb'' AS cust'); FDQuery1.Open('select * from "Orders" o ' + 'left join hr."Employees" e on o.EmployeeID = e.EmployeeID ' + 'left join cust."Customers" c on o.CustomerID = c.CustomerID'); //SQLite_OnAuthorize 参考代码: procedure TForm1.FormCreate(Sender: TObject); begin FDConnection1.Connected := True; TSQLiteDatabase(FDConnection1.ConnectionIntf.CliObj).OnAutorize := DoAuthorize; FDQuery1.Open; end; procedure TForm1

awk 命令

社会主义新天地 提交于 2019-12-03 17:03:43
一、简介 awk是一个报告生成器,我们可以利用awk将文本整理成“表”的样子。 awk其实是一门编程语言,它支持条件判断,数组,循环等功能。 grep,sed,awk被称为linux的三剑客。 grep更适合单纯的查找,文本匹配 sed更适合编辑匹配到的文本 awk更适合格式化文本,对文本进行较复杂格式处理。 二、awk基础 awk [options] 'program' file1, file2,... 细分语法: awk [options] 'pattern{action}' files 1. df |awk '{print $5}' 打印第5列数据 其它说明:$0 显示整行,$NF 最后一列 2. 打印多行 df |awk '{print $1,$5}' 3.添加自定义字段 df |awk '{print $1,"abc"}' df | awk '{print "abc":$1}' 4. BEGIN END BEGIN:处理文本之间需要执行的操作 df |awk 'BEGIN {print "aaa","bbb"} {print $1,$2}' df | awk '{print $1,$2} END{print "aaa","bbb"}' 5. 输入分隔符 -F指定分隔符: awk -F# '{print}' a.txt 也可以通过变量的方式指定分隔符,

分块吼啊 学习笔记——分块

扶醉桌前 提交于 2019-12-03 11:29:36
分块吼啊 ## 学习笔记——分块 之前一直不会写分块。 咕到了今天终于写了几个裸题 LOJ数列分块入门1 区间加,单点查 线段树很容易,但是要练分块 更容易 把数列分成 \(\sqrt{n}\) 的块 整块的打 \(tag\) 两边的暴力 代码如下: #include<bits/stdc++.h> using namespace std; const int maxn=50010; int n,a[maxn],t,L[maxn],R[maxn],bl[maxn],tag[maxn]; inline void add(int l,int r,int d){ if(bl[l]==bl[r]) for(int i=l;i<=r;i++) a[i]+=d; else{ for(int i=bl[l]+1;i<=bl[r]-1;i++) tag[i]+=d; for(int i=l;i<=R[bl[l]];i++) a[i]+=d; for(int i=L[bl[r]];i<=r;i++) a[i]+=d; } } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); t=sqrt(n); for(int i=1;i<=t;i++){ L[i]=(i-1)*t+1;R[i]=t*i; } if(R[t]<n

ruby regular expression begin method a bit confusing

匿名 (未验证) 提交于 2019-12-03 10:24:21
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: m = /(.)(.)(\d+)(\d)/.match("THX1138.") puts m[0] c = m.captures #=> HX1138 puts c[0] #=> H puts m.begin(0) #=> 1 puts c[1] #=> X puts m.begin(1) #=> 1 puts c[2] #=> 113 puts m.begin(2) #=> 2 I was expecting m.begin(1) to return 2 since X is two elements after the beginning of string. I am reading the book well grounded rubyist which says To get the information for capture n, you provide n as the argument to begin and/or end. Similarly I was expecing m.begin(2) to rerturn 3. 回答1: Read carefully: Returns the offset of the start of the nth

Inno Setup - Check if multiple folders exist

匿名 (未验证) 提交于 2019-12-03 10:10:24
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I have a custom uninstall page, which is invoked with this line: UninstallProgressForm.InnerNotebook.ActivePage := UninstallConfigsPage; Now, this just shows the page every time the uninstaller is run, but I need it to show only if certain folders exist (there's 6 of them). I could make an if statement with a bunch of or 's, but I'm wondering if there's a neater way to do it. 回答1: In general, there's no better way than calling DirExists for each folder: if DirExists('C:\path1') or DirExists('C:\path2') or DirExists('C:\path3') then begin { .

C++ STL——string和vector

核能气质少年 提交于 2019-12-03 09:36:52
目录 一 STL基本概念 二 string容器 三 vector容器 3.1 vector动态增长原理 3.2 vector构造函数 3.3 vector常用赋值操作 3.4 vector大小操作 3.5 vector数据存取操作和插入删除 3.6 使用swap()收缩空间 3.7 使用reserve()预留空间提高程序效率 注:原创不易,转载请务必注明原作者和出处,感谢支持! 注:内容来自某培训课程,不一定完全正确! 一 STL基本概念 STL(Standard Template Library)标准模板库,最早是惠普实验室开发的一系列软件的统称,现在主要出现在C++中,但是在引入C++之前该技术已经存在很长的时间了。 STL从广义上分为:容器(container),算法(alogrithm)和迭代器(iterator)。容器和算法之间通过迭代器进行无缝连接。STL几乎所有的代码都采用了模板类或者模板函数,这相比传统的由函数和类组成的库来说提供了更好的代码重用机会。 在C++标准库当中,隶属于STL的占到了80%以上。在C++标准库中,STL被组织成以下13个头文件: <algorithm> <deque> <functional> <iterator> <vector> <list> <map> <memory> <numeric> <queue> <set> <stack>