我正在尝试记录我的应用程序的启动延迟.我这样做的方法是设置应用程序的开始时间Application.onCreate
并提供返回时间的公共方法.
MyApplication extends Application {
Date startUpTime;
//Declare variables
@Override
public void onCreate() {
super.onCreate();
setStartupTime();
//other initializations
}
private void setStartUpTime() {
startUpTime = new Date();
}
public Date getStartUpTime() {
return startUpTime;
}
}
MyActivity extends Activity {
.
.
.
@Override
public void onStart(){
logStartUpLatency();
//other onStart stuff
}
private void logStartUpLatency() {
Date currentTime = new Date();
Date startTime = (MyApplication)getApplicationContext().getStartUpTime();
long latency = currentTime.getTime() - startTIme.getTime();
Log.d("Start up Latency is ", …
Run Code Online (Sandbox Code Playgroud) 如果我们定义一个类似的函数
(defun foo(x)
(setf x somevalue))
Run Code Online (Sandbox Code Playgroud)
被x
定义为局部变量还是全局变量?使用setf/q将值设置为全局.如果它是全局的,任何人都可以告诉我如何在lisp中定义局部变量而不是let
?
谢谢!
请考虑以下示例
(let ((x 0))
(defun foo (y)
(when (equal x 0) (setq x y))
(when (< x y) (setq x y))
x))
Run Code Online (Sandbox Code Playgroud)
当我给一些输入到foo
喜欢(foo 2)
,它返回2,如果我们再次执行功能与(foo 1)
它仍返回2和(foo 3)
返回3,本是问题是我真正想要什么do.But这怎么可能,因为如果我尝试x
从clisp终端访问函数外部的变量,我无法.如果我再次访问该函数,它似乎保留了以前的值x
.
谢谢!
我这个学期已经学过算法课程,我正试图解决CLRS中的一个问题
2.3-7描述一个theta(n lg n)时间算法,给定一组n个整数和另一个整数x,确定S中是否存在两个元素,其和是x.
我不知道如何处理这个问题.我试图使用合并排序算法解决它,因为它在nlogn时间内完成,但我不知道它是否是正确的方法.
任何人都可以告诉我在已经指定运行时间时解决算法时的一般方法是什么?
谢谢.