小编Thi*_*nka的帖子

是否Nginx + php-fpm比Apache + mod-php快得多

我在Apache服务器上运行基于PHP的Web应用程序,后端有大量的php处理.由于整体性能较低,我致力于提高应用程序的性能.首先,我遵循了客户端缓存,gzip启用,js-css缩小等技术,这些技术可以很好地提高性能.

为了进一步提高性能,我想尝试服务器级别的改进.所以我尝试通过在Apache和Nginx服务器上托管它来比较应用程序性能.

  • Nginx版本 - 1.0.15;
  • Apache版本 - 2.2.15;
  • php版本 - 5.4.38;

在Apache I用户Apache + mod-php和Nginx中,我使用Nginx + php-fpm进行比较.正如大多数教程所解释的那样,我将Nginx工作者的数量配置为等于处理器中的核心数量.我用jmeter做了压力测试,下面是我可以用它生成的图表.

在所有这些图中,x轴是我发送的每个请求,y轴是获取每个请求的响应的毫秒数.

访问登录页面

在此输入图像描述

提交登录页面

在此输入图像描述

访问主页

在此输入图像描述

我只能在1秒内执行最多100个并发用户的测试,因为它在两个服务器设置之后开始丢弃请求.

Nginx的性能比Apache有所改善,但是将我的所有服务器架构从Apache更改为Nginx并不是一个主要的区别.当我观察服务器资源利用率时,我发现Nginx和Apache之间并没有太大区别

当我进行人们已经完成的其他比较时,我发现他们声称Nginx在并发访问中要快得多,如下图所示.

http://www.eschrade.com/wp-content/uploads/2014/01/event-mpm-nginx.gif

但我无法观察到Nginx在Apache上的性能有任何重大差异,即使在1秒内有100个并发访问.

以下是我的问题.

  1. 由于有效使用内存和其他资源,Nginx + php-fpm是否比Apache + mod-php更快地进行服务器操作?
  2. Nginx是否仅建议服务器静态竞争而不是重型服务器操作站点?
  3. 有没有更好的方法来配置Nginx以获得更多的性能提升?

php apache performance nginx stress-testing

15
推荐指数
3
解决办法
2万
查看次数

OCR和单词审查

我正在使用Tesseract进行我的字母识别项目,目前认可度非常好.图像处理部分使用OpenCv库完成.这些字母是手写的.但是当我用它来识别字母"O"和数字"0"时有一些问题.这些字母在数据区域中用作输入名称的字段.所以名字不能包含任何数字.当我们使用数据字段的系统作为出生日期时,它只包含数字.所以我愿意限制识别系统说相应的数据字段只有数字或字母.

而且我也愿意用可能的单词审查已识别的字母,这样我们就可以提高数据的准确性.我愿意使用openCv库来完成这项任务.但我不知道有哪些库可以帮助完成这项任务,以及这些库的功能是什么.所以请一些人帮助我.谢谢.

此致,提兰卡.

ocr tesseract

7
推荐指数
1
解决办法
481
查看次数

如何有效地查询有向无环图

我在我的网络应用程序上使用mysql.应用程序表包含一个supervisor表和一个employee表.员工表包含有关每个员工的信息.主管表包含两列,如下所示.

supervisor_id -> which is employee id of the supervisor
subordinate_id -> which is the employee id of the subordinate. 
Run Code Online (Sandbox Code Playgroud)

每个下属可以有多个主管,一个主管下属可以是其他员工的主管.所以表格记录可以跟随.

supervisor_id | subordinate_id
1             | 2
1             | 3
2             | 4
4             | 5
3             | 6
3             | 4
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,有一个监督链.主管1有2个,3个,4个,5个和6个作为他的下属.主管2有4,5作为下属.而且它也可以为下属提供多个主管.

当我查询主管2的所有下属时,我现在使用如下的查询.

public function getSubordinate($id) {
 $query = "SELECT * FROM supervisor WHERE subordinate_id = $id";
 // get results and return
}
Run Code Online (Sandbox Code Playgroud)

所以我现在所做的是首先发送id为2以获得它的直接下属.然后,对于每个生成的下属,我一次又一次地运行查询以获得完整的下级链.

对于少量数据,这是可以的.但是这个主管表将有数千个数据,因此我必须进行数千次查询才能找到主管链,并且需要时间才能给出结果.

由于下属可以有多个主管,因此嵌套集不会是一个确切的答案.

我也经历过这个解决方案.http://www.codeproject.com/Articles/22824/A-Model-to-Represent-Directed-Acyclic-Graphs-DAG-o

但是当我使用这种方法时,它会有数百万的数据与该表.这是低效的.

我的问题是有任何有效的方法来做到这一点.我的表结构有什么问题阻止我有效地进行这种查询.

mysql directed-acyclic-graphs

6
推荐指数
1
解决办法
1662
查看次数

如何自动将Github存储库同步到SourceForge存储库

我在SourceForge上有一个git存储库,现在我需要将存储库从SourceForge移动到Github.我使用以下链接中给出的Github导入选项来完成它.

https://import.github.com/new

在此输入图像描述

继续我将使用Github存储库作为主要存储库,其中更改将推送,但我不想中断我的SourceForge存储库.即使我不推送到SourceForge存储库,我想设置一个自动机制来同步从Github到SourceForge的每次推送的更改.我找到了一个Git选项,可以实现这个称为"更新后"的挂钩,它对我内部服务器中托管的存储库没有任何问题.

http://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

但出于安全原因,Github似乎不支持更新后的挂钩,而是支持"Webhooks"

如何在GitHub上运行post-receive hook

但是如果我使用Webhooks,我可能需要设置一个中间服务器来监听这些Webhook通知并将更改推送到SourceForge.

题:

我是否可以遵循任何其他设置来实现直接将Github存储库同步到SourceForge存储库而不维护中间存储库,正如我在Webhooks中所解释的那样?

注意:在我的情况下,将开发人员本地存储库中的Github repo和SourceForge repo设置为遥控器将无法正常工作,因为会有数十名开发人员参与项目的贡献而我们无法控制它.

git sourceforge github githooks

5
推荐指数
0
解决办法
411
查看次数

什么是最好的Material Design UI框架

我开始构建一个用于HR管理的Web应用程序,并考虑将Material Design概念应用于界面.当我搜索时,发现它有很多框架,例如

  1. 角度材料
  2. 物质化
  3. 聚合物

我想为我的项目选择其中一个材料设计框架.我对这些框架有几个担忧.

  1. 框架的稳定性和未来可维护性是什么?
  2. 根据我们的新要求和组件定制框架是多么容易
  3. 其他人是否使用该框架
  4. 其中有大部分功能

通过考虑上述问题,有人可以建议我使用什么作为材料设计框架?

user-interface materialize polymer material-design angular-material

5
推荐指数
1
解决办法
1025
查看次数

更改NSIS中的默认安装文件夹

我正在使用nsis编写Windows安装程序.此安装程序包含一个在xampp之上运行的Web应用程序,因此xampp也作为服务与此应用程序一起安装.但是xamp在Windows 7上安装在64位机器上会出现问题.这是由于此处提到的C:\ Program Files(x86)中的目录路径问题.

XAMPP错误解决方案?我在Windows XP双引导机上安装了它

但是目前自动安装路径在安装程序中设置如下.

C:\Program Files (x86)\myapplication
Run Code Online (Sandbox Code Playgroud)

安装程序脚本只有以下宏来添加目录选择器页面.

!insertmacro MUI_PAGE_DIRECTORY
Run Code Online (Sandbox Code Playgroud)

作为一种解决方案,我要做的就是采取行动.

  1. 将默认目录更改为c:\ Program Files
  2. 如果用户选择x86文件夹,则会给出错误消息以选择另一个目录.

为此,我需要获取安装目录路径

$INSTDIR
Run Code Online (Sandbox Code Playgroud)

  1. 检查是否存在具有该路径的x86子字符串
  2. 如果是这样给出错误消息.
  3. 将默认路径更改为c:\ Program Files

由于我对nsis不太熟悉,我无法编写这个程序.

有人可以帮我解决这个问题吗?

installer nsis windows-7-x64

3
推荐指数
1
解决办法
1万
查看次数

如何在Jmeter中进行错误处理

我正在使用Jmeter对网站进行负载测试.

JMeter不会显示404错误以外的错误.

如何在JMeter中获取其他情况下出现的错误消息?

jmeter

2
推荐指数
1
解决办法
6757
查看次数

如何使用Windows XP中的批处理文件检查端口80是否可用

我正在编写一个批处理文件来自动检查端口80的可用性,并在其他程序使用时给出错误消息.但我不确定如何检查批处理文件中的端口80可用性.

我发现以下命令检查终端.

 netstat -o -n -a | findstr 0.0:80
Run Code Online (Sandbox Code Playgroud)

但是我需要使用如下的批处理文件来检查它

if (!//port 80 is available) {
  // Give an error message
} else {
  // Continue with the rest
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我这个.

port windows-xp batch-file

2
推荐指数
1
解决办法
8695
查看次数

在nsis中使用inetc :: post的"URL部件错误"

我正在使用nsis开发安装程序.作为最后一步,有一个注册过程,用户可以获取他的电子邮件地址和其他一些数据并将其发送到服务器.代码如下.

StrCpy $ContactName "$0"
StrCpy $ContactEmail "$1"
StrCpy $Coments "$2"
StrCpy $Updates "$3"
StrCpy $PostStr "userName=$ContactName&userEmail=$ContactEmail&userComments=$Coments&updates=$Updates"

inetc::post "$PostStr" "http://www.mysite.com/registration/registerAcceptor.php" "$INSTDIR\output.txt"

Pop $0
StrCmpS $0 "OK" success failedToSubmit
failedToSubmit:
    MessageBox MB_OK|MB_ICONEXCLAMATION "There was an error submitting the registration information"
Return

success:
MessageBox MB_OK|MB_ICONINFORMATION "Your information was successfully received by OrangeHRM"
Run Code Online (Sandbox Code Playgroud)

但是,当用户尝试注册时,第一次给出错误消息

"There was an error submitting the registration information"
Run Code Online (Sandbox Code Playgroud)

当我使用如下消息检查命令的返回值时

MessageBox MB_OK $0
Run Code Online (Sandbox Code Playgroud)

它显示以下错误

URL Parts Error
Run Code Online (Sandbox Code Playgroud)

但是当我返回并继续执行相同的操作时,它会给出成功消息,返回值也是如此

OK
Run Code Online (Sandbox Code Playgroud)

我不确定为什么这个东西在这两种情况下会有两种不同的方式.有人可以帮忙吗

提前致谢.

installer nsis

2
推荐指数
1
解决办法
1462
查看次数

如何在symfony重定向中获取referer url

我正在使用symfony 1.4进行一些Web应用程序.在那里,当有人试图访问一个动作时,我将其重定向到新的动作,如下所示.

//Assume I'm redecting from module1/action1 to module2/action2
$this->redirect('module2/action2');
Run Code Online (Sandbox Code Playgroud)

我在module2/action2中可以获取重定向的url.我用了

$request->getReferer();
Run Code Online (Sandbox Code Playgroud)

但它没有给出任何结果.

我不需要使用forward而不是重定向,因为它不符合我的需要.有人可以帮我这个.

php url redirect symfony-1.4

2
推荐指数
1
解决办法
1万
查看次数