我是CakePHP框架的新手,正在尝试设置一个"Hello World"项目.在处理它时,我在执行简单的数据库查询时遇到了来自CakePHP的非常慢的响应.
以下是我所做的步骤:
编辑默认的AppController.php文件,如下所示:
class AppController extends Controller {
var $uses = array('Test');
function say_hello() {
$this->Test->query("select * from test where id=0");
echo "hello";
}
}
Run Code Online (Sandbox Code Playgroud)之后,我访问了"http:// localhost/app/say_hello"链接,并且响应时间超过1秒.
如果我将查询语句注释掉如下:
class AppController extends Controller {
var $uses = array('Test');
function say_hello() {
//$this->Test->query("select * from test where id=0");
echo "hello";
}
}
Run Code Online (Sandbox Code Playgroud)
然后,它只需要大约60ms来响应.
这对我来说似乎不对,因为在空表上执行简单查询不应该花费~940ms.我尝试使用DebugKit进行调试,它表明ControllerAction(在这种情况下,say_hello动作非常简单)占用了超过1秒的处理时间.另请注意,缓慢问题不是由DB引起的,因为DebugKit表明在执行say_hello操作时只有一个查询,并且该查询几乎需要0ms才能完成.
我不确定是什么导致这种缓慢.任何经验丰富的CakePHP成员能否告诉我一些关于这种情况下错误的信息?我还应该做些什么来解决问题并解决问题?
谢谢.
我是node.js和promise样式函数调用的新手.通过查看http://runnable.com/Ulatc0QnzUgUAAAK/adapting-node-js-with-q-for-promises上的denodeify示例,我试图将node.js node-ftp模块的方法去除如下:
var ftp = require('ftp');
var q = require('q');
var ftpClient = new ftp();
ftpClient.on('ready', function() {
var ftpList = q.denodeify(ftpClient.list);
ftpList().then(function(list) {
console.log(list);
}.then(null, function(err) {
console.log(err);
}).done(function() {
ftpClient.end();
});
});
ftpClient.connect();
Run Code Online (Sandbox Code Playgroud)
但是,当使用节点运行该代码时,它会显示错误"list error:TypeError:Object#have method'apasv'"
我不确定这段代码有什么问题.有谁知道这有什么问题?你能指点我调试/排除错误信息的原因吗?
谢谢.