有意思的事

公司用MSSQL+IIS ,开发了一套FIS系统。一边开发一边使用003.gif

今天追踪代码发现点有意思的事。
1.有个语句执行次数非常多,资源消耗不算多,最多的要消耗2000次,时间要0.010秒左右。之前一直没有关注这种东西。仔细看看,真发现点事。看了看代码,这只是一个简单的select  id  from table where boxid=xx order by id。这语句一天要执行大概50W次,还有类似的语句4个,执行的次数也都是50W次左右。
这东西做什么的?为什么要执行这么多回select?问了下开发的人,他告诉我:这东西就是在页面上显示信息的。
比如:每个产品有个ID,做好的产品在放在box中,做好一个就输入一次。输入ID后,要在页面上显示一下log记录,除了这个没有任何其它用途。经过了解还发现这个语句真的可以省了,只要把信息写在页面上就OK了。这算什么呢? 开发的说了,这么做主要是省事。。。
2.有个东西打条码的东西,很复杂的规则,一次生成20000条码并验证其它信息,目前只能先生成再打印。用打开trace后,发现这个过程要执行6-8秒。感觉无法理解,为什么没人说慢呢,后来又测试了用变量表,发现变量表快很多。(这个很丢人。测试的时候环境就出了问题:一个窗口开了statistics io,time on另一个没有开)结果就建议开发人员改过程,开发的哥们改完后说了并没有快多少,全是一秒就执行完了。感觉很奇怪,怎么会呢?  仔细看才发现,原来是profile与statistics的问题。开启profile或者statistics后,执行时间要8秒,不开启有1秒。 汗啊,看来profile与statistics执行时间不是很可信的。猜测是工具本身要收集数据导致时间变长。
开启profile后有可能使系统变慢??!!!!这东西MS建议说尽量不要在生产环境中使用。。。。现在是明白了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12807983/viewspace-700389/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12807983/viewspace-700389/

当然可以!我们来换一种轻松有趣的方式来学习 C++ 的基础知识。想象你正在玩一个“编程冒险游戏”,我就是你的游戏向导,带你一步步探索 C++ 的世界。 --- ## 🎮 编程冒险游戏:C++ 新手村 ### 🌟 任务一:启动游戏(Hello World) 你刚进入游戏世界,第一个任务是学会打招呼。 ```cpp #include <iostream> // 引入语言技能书 int main() { std::cout << "你好,冒险者!欢迎来到 C++ 世界!" << std::endl; return 0; } ``` **解释:** - `#include <iostream>` 是一本“语言技能书”,让你能说话。 - `main()` 是你的出生点,游戏从这里开始。 - `std::cout` 是你的嘴巴,用来输出信息。 - `std::endl` 是一个回车键,表示换行并刷新输出。 --- ### 🧰 任务二:收集资源(变量和数据类型) 你需要收集一些资源来开始冒险: ```cpp int level = 1; // 等级 double health = 100.0; // 血量 char weapon = 'S'; // 武器(S代表剑) bool hasKey = false; // 是否有钥匙 std::cout << "当前等级:" << level << std::endl; std::cout << "血量:" << health << std::endl; std::cout << "武器:" << weapon << std::endl; std::cout << "是否有钥匙:" << hasKey << std::endl; ``` **解释:** - `int` 是整数型,像等级这种没有小数的数字。 - `double` 是更精确的小数,适合血量、金钱等。 - `char` 是一个字符,比如武器的种类。 - `bool` 只有两个值:`true` 和 `false`,适合开关类的状态。 --- ### 🧭 任务三:选择路线(条件判断) 你来到一个岔路口,根据情况选择路线: ```cpp int choice; std::cout << "请选择路线(1-战斗,2-宝藏):"; std::cin >> choice; if (choice == 1) { std::cout << "你选择了战斗!怪物来袭!" << std::endl; } else if (choice == 2) { std::cout << "你找到了宝藏!获得了金币!" << std::endl; } else { std::cout << "你迷路了……" << std::endl; } ``` **解释:** - `if` 是“如果……就……” - `else if` 是“否则如果……” - `else` 是“否则……” --- ### 🏃‍♂️ 任务四:反复训练(循环) 你需要不断练习技能,直到掌握为止: ```cpp for (int i = 1; i <= 5; ++i) { std::cout << "第 " << i << " 次练习技能..." << std::endl; } std::cout << "技能已掌握!" << std::endl; ``` **解释:** - `for` 循环就像反复做一件,比如练技能、打怪。 - `i <= 5` 表示练5次。 - `++i` 是每次加一。 --- ### 🧙‍♂️ 任务五:召唤技能(函数) 你学会了一个新技能,可以随时召唤: ```cpp void castFireball() { std::cout << "🔥 释放火球术!" << std::endl; } int main() { castFireball(); castFireball(); return 0; } ``` **解释:** - `void castFireball()` 是一个技能函数,没有返回值。 - `castFireball();` 是使用技能。 --- ### 🧬 任务六:打造装备(类与对象) 你决定打造一个自己的角色: ```cpp #include <iostream> #include <string> using namespace std; class Hero { public: string name; int level; double hp; void showStatus() { cout << name << " Lv." << level << " HP:" << hp << endl; } }; int main() { Hero hero; hero.name = "小明"; hero.level = 5; hero.hp = 150.0; hero.showStatus(); // 显示角色状态 return 0; } ``` **解释:** - `class Hero` 是你的角色模板。 - `name`, `level`, `hp` 是角色的属性。 - `showStatus()` 是角色的一个动作。 --- ##
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值