随笔 - 29  文章 - 13  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

c++

Linux

Tools

搜索

  •  

最新评论

阅读排行榜

评论排行榜

这两天为了解决Service Unavailable 的问题,进行了程序调优总结有以下几点:

一、页面执行时间,这一步是非常关键的,能帮助你了解哪些页面没有达到性能要求。

二、用好VS.NET 2005的性能调优功能,此功能能将你程序中的运行状态进行非常有效的分析,能很方便的找到程序的问题所在,看出哪里运行次数最多,执行时间最长

三、数据库方面可以使用Sqlserver自带的事件探查器或Read80Trace

另外尽量少用反射,这东东太耗时间了,同样的功能用Repeater控件DataBind据耗的时间比asp风格式的输出慢几十ms

posted @ 2006-12-09 17:26 四海 阅读(375) | 评论 (1)编辑 收藏

回头看看自己犯了不少错误正确的解决步骤应该是:

一、看看页面执行时间是否合理,有没有执行时间特别长的页面。确认程序是正确的

二、看看服务器资源是否够用,是否有非常耗资源的程序在服务器运行

基本解决这两个问题就能解决了

偶就是因为太自信,老觉得自己的程序没问题把重点放在了第二点上,导致走了不少弯路,谨记!

posted @ 2006-12-08 17:04 四海 阅读(580) | 评论 (1)编辑 收藏

这年头想做的偏不让你做
不想做的却偏偏让你做

一切随缘????
缘为何物
万事有定数


是该随波逐流抑或奋起抗争?????
怒!!!
人生不如意十之八九
就让我把失败转换为前进的动力吧
人生掌握在自己手里
让那些鼠目寸光的人看看他们自己是多么的弱智
让他们后悔去吧

posted @ 2006-12-06 18:24 四海 阅读(310) | 评论 (1)编辑 收藏

配置完了之后如果运行不了
检查下IIS是否允许WEB服务扩展CGI/ISAPI

posted @ 2006-12-05 10:22 四海 阅读(200) | 评论 (0)编辑 收藏
使用SDL+opengl写的一个简单的游戏
此版仅实现了简单的方块移动
在Windows及FC Linux下编译运行通过

需要SDL开发包
源文件点此下载

计划把它写成一个增强算术运算能力的益智游戏



posted @ 2006-10-26 08:38 四海 阅读(291) | 评论 (0)编辑 收藏
自建站以来已N久未曾打理过了
不少新的网站已冒出
很险啊

没有一点优势啊

posted @ 2006-10-24 16:47 四海 阅读(208) | 评论 (0)编辑 收藏
TextureApp2.JPG


点此下载源文件

/*
MainApp.hpp
*/
#ifndef MAINAPP_HPP
#define MAINAPP_HPP
#include <GL/gl.h>
#include <SDL/SDL.h>

#define ImageWidth 64
#define ImageHeight 64

class MainApp
{
public:
    MainApp();
    ~MainApp();
    void loop();   
    void quit();   
   
private:   
    void initGL();
    void initTexture();
    void makeImage();
    void destroyGL();
    void onKeyDown(const SDL_Event &event);
    void draw();
    bool running;
    GLubyte Image[ImageWidth][ImageHeight][3];
};

#endif


/*
MainApp.cpp
*/
#include <GL/gl.h>
#include <SDL/SDL.h>
#include "MainApp.hpp"

MainApp::MainApp():running(true)
{
    initGL();
}
MainApp::~MainApp()
{
    destroyGL();
}

void MainApp::initGL()
{
    SDL_Init(SDL_INIT_VIDEO);
    SDL_SetVideoMode(600,300,16,SDL_OPENGL);
    glClearColor(0,0,0,0);
    initTexture();
}

/* 创建纹理 */
void MainApp::makeImage(void)
{
    int i, j, r,g,b;
    for (i = 0; i < ImageWidth; i++)
    {
        for (j = 0; j < ImageHeight; j++)
        {
           r=(i*j)%255;
            g=(4*i)%255;
            b=(4*j)%255;
            Image[i][j][0] = (GLubyte) r;
            Image[i][j][1] = (GLubyte) g;
            Image[i][j][2] = (GLubyte) b;
        }
    }
}

void MainApp::initTexture()
{
    makeImage();
 /*  定义纹理 */
    glTexImage2D(GL_TEXTURE_2D, 0, 3, ImageWidth,
    ImageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,
    &Image[0][0][0]);
  /*  控制滤波 */
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
   glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
/*  说明映射方式*/
   glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
/*  启动纹理映射 */
    glEnable(GL_TEXTURE_2D);
}

void MainApp::destroyGL()
{
    SDL_Quit();
}
void MainApp::loop()
{
    SDL_Event event;
    while(running)
    {
        while(SDL_PollEvent(&event))
        {
            switch(event.type)
            {
            case SDL_KEYDOWN:
                onKeyDown(event);
                break;
            }
        }
        SDL_Delay(50);
        draw();
    }
}
void MainApp::quit()
{
    running=false;
}
void MainApp::onKeyDown(const SDL_Event &event)
{
    switch(event.key.keysym.sym)
    {
    case SDLK_ESCAPE:
        quit();
    }
}
void MainApp::draw()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glBegin(GL_QUADS);
        glColor3f(1,1,1);
        glTexCoord2f(0,0);glVertex3f(-0.5,-0.5,-0.5);
        glTexCoord2f(0,1);glVertex3f(-0.5,0.5,-0.5);
        glTexCoord2f(1,1);glVertex3f(0.5,0.5,0.5);
        glTexCoord2f(1,0);glVertex3f(0.5,-0.5,0.5);
    glEnd();
    
    SDL_GL_SwapBuffers();
}

int main(int argc,char* argv[])
{
    MainApp app;
    app.loop();    
}

posted @ 2006-10-17 18:42 四海 阅读(1368) | 评论 (0)编辑 收藏
http://www.cppblog.com/Files/giant35/Baihe.Tools.PatchCreator.rar
点此下载v0.01源程序
点此下载v0.02源程序


开发动机:
因web开发更新极为频繁,
且每次都不是整站更新而是修改了什么更新什么
每次挑选出需要更新的文件且按目录结构组织好颇费一翻事
未曾找到类似的工作
所以产生了开发此程序的动机


目标:
补丁打包机
实现人工干预+智能规则推导找出所有需要更新的文件
并能以多种形式发布(复制/FTP上传/打包……)


使用说明:
先选择要更新的文件再使用菜单“补丁”->"发布"  发布


有没有人使呢?




posted @ 2006-10-17 16:46 四海 阅读(247) | 评论 (0)编辑 收藏
点击下载源文件



/*
坐标观察程序,
ESC:退出
F5:复位
LEFT/RIGHT:以绿色Y为轴心旋转
UP/DOWN:以红色X为轴心旋转
PAGEUP/PAGEDOWN:以蓝色z为轴心旋转
*/
#include <GL/gl.h>
#include <SDL/SDL.h>
bool running=true;
float x=0.0,y=0.0,z=0.0;
enum Target{modelview,projection};
Target target=modelview;

void initGL()
{
    SDL_Init(SDL_INIT_VIDEO);
    SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY,SDL_DEFAULT_REPEAT_INTERVAL);
    SDL_SetVideoMode(600,300,16,SDL_OPENGL);
    
}
void destroyGL()
{
    SDL_Quit();
}
void drawCoordinate()
{
    glBegin(GL_LINES);
        glLineWidth(10.0f);
        glColor3f(1,0,0);
        glVertex3f(0,0,0);
        glVertex3f(1,0,0);
        glColor3f(0,1,0);
        glVertex3f(0,0,0);
        glVertex3f(0,1,0);
        glColor3f(0,0,1);
        glVertex3f(0,0,0);
        glVertex3f(0,0,1);
    glEnd();

}
void draw()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    if(target==modelview)
    {
        glMatrixMode(GL_MODELVIEW);
    }
    else
    {
        glMatrixMode(GL_PROJECTION);
    }
    glLoadIdentity();
    glRotatef(x,1,0,0);
    glRotatef(y,0,1,0);
    glRotatef(z,0,0,1);
    glMatrixMode(GL_MODELVIEW);
    drawCoordinate();
    
    SDL_GL_SwapBuffers();

}
void switchTarget()
{
    if(((int)target+1)>((int)projection))
    {
        target=modelview;
    }else
    {
        target=(Target)((int)target+1);
    }
}
void reset()
{
    x=0;
    y=0;
    z=0;
}
void quit()
{
    running=false;
}
void onKeyDown(const SDL_Event& event)
{
    switch(event.key.keysym.sym)
    {
    case SDLK_ESCAPE:
    quit();
    break;
    case SDLK_TAB:
    switchTarget();
    break;
    case SDLK_F5:
    reset();
    break;
    case SDLK_LEFT:
    y+=1;
    break;
    case SDLK_RIGHT:
    y-=1;
    break;
    case SDLK_UP:
    x+=1;
    break;
    case SDLK_DOWN:
    x-=1;
    break;
    case SDLK_PAGEUP:
    z+=1;
    break;
    case SDLK_PAGEDOWN:
    z-=1;
    break;
    
    }
}
void loop()
{
    SDL_Event event;
    while(running)
    {
        while(SDL_PollEvent(&event))
        {
            switch(event.type)
            {
            case SDL_QUIT:
                quit();
            break;
            case SDL_KEYDOWN:
                onKeyDown(event);
            break;
            }
        }
        draw();
        SDL_Delay(50);
    }

}
int main(int argc,char* argv[])
{
    initGL();
    loop();
    destroyGL();    
    return 0;
}

posted @ 2006-09-28 16:52 四海 阅读(1144) | 评论 (0)编辑 收藏
上一篇中我们绘制了一个彩色的三角型
这次我们让它动起来

#include <GL/gl.h>
#include <SDL/SDL.h>
bool running=true;
float y=0.0;

void initGL()
{
    SDL_Init(SDL_INIT_VIDEO);
    SDL_SetVideoMode(600,300,16,SDL_OPENGL);
    
}
void destroyGL()
{
    SDL_Quit();
}
void draw()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glRotatef(y,0,1,0);
    glBegin(GL_TRIANGLES);
        glColor3f(1,0,0);
        glVertex3f(0,0,0);
        glColor3f(0,1,0);
        glVertex3f(1,0,0);
        glColor3f(0,0,1);
        glVertex3f(0,1,0);
    glEnd();

    SDL_GL_SwapBuffers();

}
void quit()
{
    running=false;
}
void onKeyDown(const SDL_Event& event)
{
    switch(event.key.keysym.sym)
    {
    case SDLK_ESCAPE:
    quit();
    break;
    case SDLK_LEFT:
    y+=0.1;
    break;
    case SDLK_RIGHT:
    y-=0.1;
    break;

    
    }
}
void loop()
{
    SDL_Event event;
    while(running)
    {
        while(SDL_PollEvent(&event))
        {
            switch(event.type)
            {
            case SDL_QUIT:
                quit();
            break;
            case SDL_KEYDOWN:
                onKeyDown(event);
            break;
            }
        }
        draw();
        SDL_Delay(50);
    }

}
int main(int argc,char* argv[])
{
    initGL();
    loop();
    destroyGL();    
    return 0;
}
#include <GL/gl.h>
#include <SDL/SDL.h>
bool running=true;
float y=0.0;

void initGL()
{
    SDL_Init(SDL_INIT_VIDEO);
    SDL_SetVideoMode(600,300,16,SDL_OPENGL);
   
}
void destroyGL()
{
    SDL_Quit();
}
void draw()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glRotatef(y,0,1,0);
    glBegin(GL_TRIANGLES);
        glColor3f(1,0,0);
        glVertex3f(0,0,0);
        glColor3f(0,1,0);
        glVertex3f(1,0,0);
        glColor3f(0,0,1);
        glVertex3f(0,1,0);
    glEnd();

    SDL_GL_SwapBuffers();

}
void quit()
{
    running=false;
}
void onKeyDown(const SDL_Event& event)
{
    switch(event.key.keysym.sym)
    {
    case SDLK_ESCAPE:
    quit();
    break;
    case SDLK_LEFT:
    y+=0.1;
    break;
    case SDLK_RIGHT:
    y-=0.1;
    break;

   
    }
}
void loop()
{
    SDL_Event event;
    while(running)
    {
        while(SDL_PollEvent(&event))
        {
            switch(event.type)
            {
            case SDL_QUIT:
                quit();
            break;
            case SDL_KEYDOWN:
                onKeyDown(event);
            break;
            }
        }
        draw();
        SDL_Delay(50);
    }

}
int main(int argc,char* argv[])
{
    initGL();
    loop();
    destroyGL();   
    return 0;
}

posted @ 2006-09-28 16:46 四海 阅读(526) | 评论 (0)编辑 收藏
仅列出标题  下一页