在这么多博客系统里,我最喜欢的是WordPress,但它的臃肿以及文章id的不连续问题同时也让我伤透了心。虽然我通过修改主程序代码解决了文章ID不连续的问题,但是伴随的主程序每次更新完之后,每次不断的返工、再加上一些可以很简单可以改善用户体验的功能却需要花极大的代价才能实现的情况下,终于我决定放弃WordPress!

考虑到个人博客,主要以内容为主,再加上我喜欢简约的风格,以及贫穷的家室…(在此感谢阿里云的学生优惠政策,能让我实现了玩独立主机的梦想)我毅然决然的决定用静态化博客,因此,随之而来的又是一大批静态博客系统,我心想:“唉,又得花时间去弄熟它们!”。

直到某天,我突然顿悟:为什么我不打造一个属于自己的静态博客系统呢?不用花费时间去学习、开发其他博客系统的插件;可以累积自己的代码量,增加代码阅历;可以发这个文章来给新人装逼…好处多多啊!

想到这里,于是我迅速的开展了行动,首先面临的问题是:用什么语言实现?

简单的遍历了一下自己平生所学后,总结一下:C++、PHP、易语言。

易语言,OUT!我的独立主机是Linux环境,难道让我要用wine执行?虽然我易语言开发经验较为丰富。

现在,剩下的就是C++与PHP之间的战斗了,一触即发!

C++,本学期才学,还没学完。用C++开发的好处就在于遇到问题可以直接找老师。在这个信息量爆炸的时代里,有老师指点是件非常幸福的事情,相信有自学经历的人都明白!

PHP,自学,水平也就那样。用PHP开发的好处就在于开发经验丰富、处理字符串、文件操作简单粗暴。

貌似两者开发对我来说不相上下啊!

作为一个静态博客系统,静态页的生成效率非常重要。

于是我便做了一个实验,代码如下:(认为C++执行效率会高的举个爪!)

C++代码:

#include <iostream> 
#include <fstream> 
#include <string>
#include<time.h>
using namespace std;
int main(){
    ifstream in("index.txt", ios::in);
    istreambuf_iterator<char> beg(in), end;
    string strdata(beg, end);    //将index.txt读入strdata字符串对象
    in.close();
    clock_t start, finish;
    start = clock();
    ofstream fout;
    char a[10];
    string str;
    //循环生成4Kb的文件,数量级分别为100,1000,1000
    for(int i = 0;i<100;i++){
        char b[10];
        sprintf(b,"%d",i);    //将整型转换为字符串
        string c = b;
        string d = "html/"+c + ".html";
        cout<<d<<endl;
        fout.open(d.c_str());
        fout<<strdata<<endl;
        fout.close();      
    }
    finish = clock();
    cout<<(double)(finish - start) / CLOCKS_PER_SEC;
     
}

PHP代码:

$temp = file_get_contents("index.txt");
$start_time=microtime(true); 
set_time_limit(0);
for($i=0;$i<10000;$i++){
    $file = fopen("html/".$i.".html", "w");
    fwrite($file,$temp);
    fclose($file);
}
$end_time=microtime(true);
$total=$end_time-$start_time; //计算差值
echo "此php文件中代码执行了{$total}秒";

结果看得我惊呆了!!!

100 1000 10000
C++ 0.312s 1.345s 13.619s
PHP 0.076s 0.475s 6.406s

从无论是从代码开发效率来说还是静态页的生成效率,PHP明显优于C++;

所以…C++,OUT!!!

啦啦啦…经验比较丰富的PHP获胜!!!开发难度降低不少!